Advertisement
Moolah60

zerucheck_key_check

Jul 22nd, 2022
1,059
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.20 KB | None | 0 0
  1. BOOL zurumode::zerucheck_key_check(zuruKeyCheck *keyCheck,InputStates controllerState)
  2.  
  3. {
  4.   InputStates IVar1;
  5.   byte bVar2;
  6.   byte bVar3;
  7.  
  8.   bVar2 = keyCheck->state;
  9.   bVar3 = keyCheck->field1_0x1;
  10.   if (bVar2 != 0xb) {
  11.     IVar1 = keyCheck->lastButtonState;
  12.     keyCheck->lastButtonState = controllerState;
  13.     IVar1 = controllerState & (IVar1 ^ controllerState);
  14.     if ((controllerState == NONE) && (bVar3 == 1)) {
  15.       bVar3 = 0;
  16.     }
  17.     else if (IVar1 != NONE) {
  18.       if (bVar3 == 1) {
  19.         bVar2 = 0;
  20.       }
  21.       if (bVar2 == 7) {
  22.         if (IVar1 == C-RIGHT) {
  23.           bVar2 = 8;
  24.         }
  25.         else {
  26.           bVar2 = 0;
  27.         }
  28.       }
  29.       else if (bVar2 < 7) {
  30.         if (bVar2 == 3) {
  31.           if (IVar1 == C-UP) {
  32.             bVar2 = 4;
  33.           }
  34.           else {
  35.             bVar2 = 0;
  36.           }
  37.         }
  38.         else if (bVar2 < 3) {
  39.           if (bVar2 == 1) {
  40.             if (IVar1 == D-UP) {
  41.               bVar2 = 2;
  42.             }
  43.             else {
  44.               bVar2 = 0;
  45.             }
  46.           }
  47.           else if (bVar2 == 0) {
  48.             if ((controllerState == (R|L|Z)) && (IVar1 == Z)) {
  49.               bVar2 = 1;
  50.               bVar3 = 1;
  51.             }
  52.           }
  53.           else if (IVar1 == C-DOWN) {
  54.             bVar2 = 3;
  55.             bVar3 = 1;
  56.           }
  57.           else {
  58.             bVar2 = 0;
  59.           }
  60.         }
  61.         else if (bVar2 == 5) {
  62.           if (IVar1 == D-LEFT) {
  63.             bVar2 = 6;
  64.           }
  65.           else {
  66.             bVar2 = 0;
  67.           }
  68.         }
  69.         else if (bVar2 < 5) {
  70.           if (IVar1 == D-DOWN) {
  71.             bVar2 = 5;
  72.             bVar3 = 1;
  73.           }
  74.           else {
  75.             bVar2 = 0;
  76.           }
  77.         }
  78.         else if (IVar1 == C-LEFT) {
  79.           bVar2 = 7;
  80.           bVar3 = 1;
  81.         }
  82.         else {
  83.           bVar2 = 0;
  84.         }
  85.       }
  86.       else if (bVar2 == 0x5b) {
  87.         if (IVar1 == B) {
  88.           bVar2 = 10;
  89.         }
  90.         else {
  91.           bVar2 = 0;
  92.         }
  93.       }
  94.       else if (bVar2 < 0x5b) {
  95.         if (bVar2 == 10) {
  96.           if (IVar1 == START) {
  97.             bVar2 = 0xb;
  98.           }
  99.           else {
  100.             bVar2 = 0;
  101.           }
  102.         }
  103.         else if (bVar2 < 10) {
  104.           if (bVar2 < 9) {
  105.             if (IVar1 == D-RIGHT) {
  106.               bVar2 = 9;
  107.               bVar3 = 1;
  108.             }
  109.             else {
  110.               bVar2 = 0;
  111.             }
  112.           }
  113.           else if (IVar1 == (B|A)) {
  114.             bVar2 = 10;
  115.           }
  116.           else if (IVar1 == A) {
  117.             bVar2 = 0x5b;
  118.           }
  119.           else if (IVar1 == B) {
  120.             bVar2 = 0x5c;
  121.           }
  122.           else {
  123.             bVar2 = 0;
  124.           }
  125.         }
  126.       }
  127.       else if (bVar2 < 0x5d) {
  128.         if (IVar1 == A) {
  129.           bVar2 = 10;
  130.         }
  131.         else {
  132.           bVar2 = 0;
  133.         }
  134.       }
  135.     }
  136.   }
  137.   if (bVar2 == 0xb) {
  138.     keyCheck->correctKeyEntered = keyCheck->correctKeyEntered ^ 1;
  139.     keyCheck->state = 0;
  140.     keyCheck->field1_0x1 = 0;
  141.   }
  142.   else {
  143.     keyCheck->state = bVar2;
  144.     keyCheck->field1_0x1 = bVar3;
  145.   }
  146.   return (uint)keyCheck->correctKeyEntered;
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement