Няшная / Говнокод #27515 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
// https://github.com/shanecoughlan/OpenGEM/blob/ac06b1a3fec3f3e8defcaaf7ea0338c38c3cef46/source/OpenGEM-7-RC3-SDK/OpenGEM-7-SDK/GEM%20AES%20AND%20SOURCE%20CODE/FreeGEM%20AES%203.0%20(source%20code)/GEMEVLIB.C#L143
/*
*	Do a multi-wait on the specified events.
*/
	WORD
ev_multi(flags, pmo1, pmo2, tmcount, buparm, mebuff, prets)
	REG WORD	flags;
	REG MOBLK	*pmo1;
	MOBLK		*pmo2;
	LONG		tmcount;
	LONG		buparm;
	LPVOID		mebuff;
	WORD		prets[];
{
	QPB		m;
	REG EVSPEC	which;
	REG WORD	what;
	REG CQUEUE	*pc;
#if MULTIAPP
	WORD		evbuff[8];
	WORD		pid;
	SHELL		*psh;
	LONG		ljunk;

	pid = rlr->p_pid;
	psh = &sh[pid];
	if ( psh->sh_state & SHRINK )		/* shrink accessory	*/
	{
	  if (pr_shrink(pid, TRUE, &ljunk, &ljunk))
	    ap_exit(TRUE); /* if no swap space terminate acc */ 
	  psh->sh_state &= ~SHRINK;
	}
#endif

						/* say nothing has 	*/
						/*   happened yet	*/
	what = 0x0;
		 				/* do a pre-check for a	*/
						/*   keystroke & then	*/
						/*   clear out the forkq*/
	chkkbd();
	forker();
						/*   a keystroke	*/
	if (flags & MU_KEYBD)
	{
						/* if a character is 	*/
						/*   ready then get it	*/
	  pc = &rlr->p_cda->c_q;
	  if ( pc->c_cnt )
	  {
	    prets[4] = (UWORD) dq(pc);
	    what |= MU_KEYBD;
	  }
	}
						/* if we own the mouse	*/
						/*   then do quick chks	*/
	if ( rlr == gl_mowner )
	{
						/* quick check button	*/
	  if (flags & MU_BUTTON)
	  {
	    if ( (mtrans > 1) &&
		 (downorup(pr_button, buparm)) )
	    {
	      what |= MU_BUTTON;
	      prets[5] = pr_mclick;
	    }
	    else
	    {
	      if ( downorup(button, buparm) )
	      {
	        what |= MU_BUTTON;
	        prets[5] = mclick;
	      }
	    }
	  }
						/* quick check mouse rec*/
	  if ( ( flags & MU_M1 ) &&	
	       ( in_mrect(pmo1) ) )
	      what |= MU_M1;
						/* quick check mouse rec*/
	  if ( ( flags & MU_M2 ) &&
	       ( in_mrect(pmo2) ) )
	      what |= MU_M2;
	}
						/* quick check timer	*/
	if (flags & MU_TIMER)
	{
	  if ( tmcount == 0x0L )
	    what |= MU_TIMER;
	}
						/* quick check message	*/
	if (flags & MU_MESAG)
	{
	  if ( rlr->p_qindex > 0 )
	  {
#if MULTIAPP
	    ap_rdwr(MU_MESAG, rlr, 16, ADDR(&evbuff[0]) );
#endif
#if SINGLAPP

Уххх бля

Запостил: j123123 j123123, (Updated )

Комментарии (10) RSS

  • #if SINGLAPP
    	    ap_rdwr(MU_MESAG, rlr, 16, mebuff);
    #endif
    	    what |= MU_MESAG;
    	  }
    	}
    						/* check for quick out	*/
    						/*   if something has	*/
    						/*   already happened	*/
    	if (what == 0x0)
    	{
    						/* wait for a keystroke	*/
    	  if (flags & MU_KEYBD)
    	    iasync( MU_KEYBD, 0x0L );
    						/* wait for a button	*/
    	  if (flags & MU_BUTTON)
    	    iasync( MU_BUTTON, buparm );
    						/* wait for mouse rect.	*/
    	  if (flags & MU_M1)
    	    iasync( MU_M1, (LONG)ADDR(pmo1) );
    						/* wait for mouse rect.	*/
    	  if (flags & MU_M2)
    	    iasync( MU_M2, (LONG)ADDR(pmo2) ); 
    						/* wait for message	*/
    	  if (flags & MU_MESAG)
    	  {
    	    m.qpb_ppd = rlr;
    	    m.qpb_cnt = 16;
    #if MULTIAPP
    	    m.qpb_buf = ADDR(&evbuff[0]);
    #endif
    #if SINGLAPP
    	    m.qpb_buf = mebuff;
    #endif
    	    iasync( MU_MESAG, (LONG)ADDR(&m) );
    	  }
    						/* wait for timer	*/
    	  if (flags & MU_TIMER)
    	    iasync( MU_TIMER, tmcount / gl_ticktime );
    						/* wait for events	*/
    	  which = mwait( flags );
    						/* cancel outstanding	*/
    						/*   events		*/
    	  which |= acancel( flags );
    	}
    						/* get the returns	*/
    	ev_rets(&prets[0]);
    						/* do aprets() if 	*/
    						/*   something hasn't	*/
    						/*   already happened	*/
    	if (what == 0x0)
    	{
    	  what = which;
    	  if (which & MU_KEYBD)
    	    prets[4] = apret(MU_KEYBD);
    	  if (which & MU_BUTTON)
    	    prets[5] = apret(MU_BUTTON);
    	  if (which & MU_M1)
    	    apret(MU_M1);
    	  if (which & MU_M2)
    	    apret(MU_M2);
    	  if (which & MU_MESAG)
    	    apret(MU_MESAG);
    	  if (which & MU_TIMER)
    	    apret(MU_TIMER);
    	}
    #if MULTIAPP
    	if ( (flags & MU_MESAG) && (what & MU_MESAG) )
    	{
    	  LBCOPY(mebuff, ADDR(&evbuff[0]), 16);
    	}
    #endif
    	 	  	  	  	  	  /* return what happened*/
    	return( what );
    }
    Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8