void CData::CryptBlock(Byte *buf, bool encrypt) { Byte inBuf[16]; UInt32 A, B, C, D, T, TA, TB; A = GetUInt32FromMemLE(buf + 0) ^ Keys[0]; B = GetUInt32FromMemLE(buf + 4) ^ Keys[1]; C = GetUInt32FromMemLE(buf + 8) ^ Keys[2]; D = GetUInt32FromMemLE(buf + 12) ^ Keys[3]; if (!encrypt) memcpy(inBuf, buf, sizeof(inBuf)); for(int i = 0; i < kNumRounds; i++) { UInt32 key = Keys[(encrypt ? i : (kNumRounds - 1 - i)) & 3]; T = ((C + rol(D, 11)) ^ key); TA = A ^ SubstLong(T); T = ((D ^ rol(C, 17)) + key); TB = B ^ SubstLong(T); A = C; B = D; C = TA; D = TB; } WriteUInt32ToMemLE(C ^ Keys[0], buf + 0); WriteUInt32ToMemLE(D ^ Keys[1], buf + 4); WriteUInt32ToMemLE(A ^ Keys[2], buf + 8); WriteUInt32ToMemLE(B ^ Keys[3], buf + 12); UpdateKeys(encrypt ? buf : inBuf); }
void CData::CryptBlock(Byte *buf, bool encrypt) { Byte inBuf[16]; UInt32 A, B, C, D, T, TA, TB; A = GetUi32(buf + 0) ^ Keys[0]; B = GetUi32(buf + 4) ^ Keys[1]; C = GetUi32(buf + 8) ^ Keys[2]; D = GetUi32(buf + 12) ^ Keys[3]; if (!encrypt) memcpy(inBuf, buf, sizeof(inBuf)); for (int i = 0; i < kNumRounds; i++) { UInt32 key = Keys[(encrypt ? i : (kNumRounds - 1 - i)) & 3]; T = ((C + rotlFixed(D, 11)) ^ key); TA = A ^ SubstLong(T); T = ((D ^ rotlFixed(C, 17)) + key); TB = B ^ SubstLong(T); A = C; B = D; C = TA; D = TB; } SetUi32(buf + 0, C ^ Keys[0]); SetUi32(buf + 4, D ^ Keys[1]); SetUi32(buf + 8, A ^ Keys[2]); SetUi32(buf + 12, B ^ Keys[3]); UpdateKeys(encrypt ? buf : inBuf); }
void Input::BeginFrame() { mouse_loc_updated_this_frame = false; UpdateKeys(); UpdateMouse(); }
int MainMenu() { clear(screen); const char *strings[] = {"PLAY", "OPTIONS", "QUIT"}; int colorSel = 0xFFFF00; int colorNot = 0xFFFFFF; int i; int y; int sel = 0; while(true) { for(i = 0, y = screen->h / 4; i < 3; i++, y += screen->h / 4) { textout_centre_ex(screen, font, strings[i], 320, y, (i == sel) ? colorSel : colorNot, 0); } UpdateKeys(); if(upKey == KeyDown) sel = (sel + 2) % 3; if(downKey == KeyDown) sel = (sel + 1) % 3; if((aKey == KeyDown) || (sKey == KeyDown) || (xKey == KeyDown) || (cKey == KeyDown)) return sel; } }
void Window::Update() { m_eventHandler->m_mouseEvent.mouse_button_pressed = false; m_eventHandler->m_mouseEvent.mouse_button_released = false; m_eventHandler->m_mouseEvent.mouse_wheel_scrolled = false; m_eventHandler->m_keyEvent.key_pressed = false; m_eventHandler->m_keyEvent.key_released = false; sf::Event event; while (m_window->pollEvent(event)) { if (event.type == sf::Event::Closed) m_open = false; if (event.type == sf::Event::Resized) { m_eventHandler->m_windowSizeState.width = event.size.width; m_eventHandler->m_windowSizeState.height = event.size.height; m_eventHandler->m_windowSizeState.aspectRatio = float(event.size.width) / float(event.size.height); glViewport(0, 0, m_eventHandler->m_windowSizeState.width, m_eventHandler->m_windowSizeState.height); } if (event.type == sf::Event::GainedFocus) { } if (event.type == sf::Event::LostFocus) { } if (event.type == sf::Event::MouseButtonPressed) { m_eventHandler->m_mouseEvent.mouse_button_pressed = true; } if (event.type == sf::Event::MouseButtonReleased) { m_eventHandler->m_mouseEvent.mouse_button_released = true; } if (event.type == sf::Event::MouseWheelScrolled) { if (event.mouseWheelScroll.wheel == sf::Mouse::VerticalWheel) { m_eventHandler->m_mouseEvent.mouse_wheel_scrolled = true; } m_eventHandler->m_mouseState.mouse_scroll_delta = event.mouseWheelScroll.delta; } if (event.type == sf::Event::KeyPressed) { m_eventHandler->m_keyEvent.key_pressed = true; } if (event.type == sf::Event::KeyReleased) { m_eventHandler->m_keyEvent.key_released = true; } } if (m_window->hasFocus()) { UpdateKeys(); UpdateMouse(); } m_window->display(); }
STDMETHODIMP_(UInt32) CDecoder::Filter(Byte *data, UInt32 size) { for (UInt32 i = 0; i < size; i++) { Byte c = (Byte)(data[i] ^ DecryptByteSpec()); UpdateKeys(c); data[i] = c; } return size; }
STDMETHODIMP_(UInt32) CEncoder::Filter(Byte *data, UInt32 size) { for (UInt32 i = 0; i < size; i++) { Byte b = data[i]; data[i] = (Byte)(b ^ DecryptByteSpec());; UpdateKeys(b); } return size; }
void Loop() { while(!OpQuit() && _sys_judge_event(NULL) >= 0) { if(!Handler()->FullSpeed()) WaitTimer(); UpdateSound(); UpdateKeys(); Handler()->OnLoop(); UpdateVideo(); } }
void Controller::Run() { //Main Loop m_timer.startTimer(); // Start timer to calculate how long it takes to render this frame while (!glfwWindowShouldClose(currentView->getWindow()) && !IsKeyPressed(VK_ESCAPE)) { //get the elapsed time m_dElapsedTime = m_timer.getElapsedTime(); m_dAccumulatedTime_thread1 += m_dElapsedTime; m_dAccumulatedTime_thread2 += m_dElapsedTime; /* fps */ fps = (float)(1.f / m_dElapsedTime); /* twin threaded approach */ if(m_dAccumulatedTime_thread1 > 0.01) //update: update fps is _dAccumulatedTime_thread1 > fps { /* Init new model etc... */ SwitchModels(); /* controls */ UpdateMouse(); UpdateKeys(); /** model update **/ currentModel->Update(m_dElapsedTime, myKeys); m_dAccumulatedTime_thread1 = 0.0; } if(m_dAccumulatedTime_thread2 > 0.003) //render: render fps is _dAccumulatedTime_thread1 > fps { /** View update(rendering) **/ currentView->Render(fps); //or switch to pause screen m_dAccumulatedTime_thread2 = 0.0; } //Swap buffers glfwSwapBuffers(currentView->getWindow()); //Get and organize events, like keyboard and mouse input, window resizing, etc... glfwPollEvents(); m_timer.waitUntil(frameTime); // Frame rate limiter. Limits each frame to a specified time in ms. } //Check if the ESC key had been pressed or if the window had been closed }
bool CPad::GetControlState ( const char* szControl, bool& bState ) { for ( int i = 0 ; *g_gtaControls [ i ].szControl != '\0' ; i++ ) { const SGTAControl* temp = &g_gtaControls [ i ]; if ( stricmp ( temp->szControl, szControl ) == 0 ) { if ( !m_bUpdatedKeys ) { UpdateKeys (); m_bUpdatedKeys = true; } bState = m_ControlStates [ i ].bState; return true; } } return false; }
Byte CCipher::EncryptByte(Byte b) { Byte c = (Byte)(b ^ DecryptByteSpec()); UpdateKeys(b); return c; }
void keyboard_handler(int keycode, int press) { UpdateKeys(keycode, press); if (RSJ) { #if 0 if (press == 0) { int i; for (i = 0; i < CheatCount; i++) { char *key = XKeysymToString(keycode); if (key == NULL) break; if (strlen(key) != 1) break; if (CheatCodes[i].code[CheatIndex] == toupper(key[0])) { CheatIndex++; if (CheatCodes[i].code[CheatIndex] == 0) { PlaySound(SND_BONUS); switch (i) { case 0: case 4: GiveKey(0); GiveKey(1); gamestate.godmode = TRUE; break; case 1: gamestate.godmode^=TRUE; break; case 2: gamestate.machinegun = TRUE; gamestate.chaingun = TRUE; gamestate.flamethrower = TRUE; gamestate.missile = TRUE; GiveAmmo(gamestate.maxammo); GiveGas(99); GiveMissile(99); break; case 3: gamestate.maxammo = 999; GiveAmmo(999); break; case 5: GiveKey(0); GiveKey(1); break; case 6: playstate=EX_WARPED; nextmap = gamestate.mapon+1; if (MapListPtr->MaxMap<=nextmap) nextmap = 0; break; case 7: ShowPush ^= TRUE; break; } CheatIndex = 0; } break; } } if (i == CheatCount) CheatIndex = 0; } #endif joystick1 = 0; #if 0 if (press == 0) { switch(keycode) { case XK_1: gamestate.pendingweapon = WP_KNIFE; break; case XK_2: if (gamestate.ammo) { gamestate.pendingweapon = WP_PISTOL; } break; case XK_3: if (gamestate.ammo && gamestate.machinegun) { gamestate.pendingweapon = WP_MACHINEGUN; } break; case XK_4: if (gamestate.ammo && gamestate.chaingun) { gamestate.pendingweapon = WP_CHAINGUN; } break; case XK_5: if (gamestate.gas && gamestate.flamethrower) { gamestate.pendingweapon = WP_FLAMETHROWER; } break; case XK_6: if (gamestate.missiles && gamestate.missile) { gamestate.pendingweapon = WP_MISSILE; } break; case XK_period: case XK_slash: joystick1 = JOYPAD_START; break; case XK_Escape: Quit(NULL); /* fast way out */ } } #endif if (keys[SC_CURSORUPLEFT]) joystick1 |= (JOYPAD_UP|JOYPAD_LFT); if (keys[SC_CURSORUP]) joystick1 |= JOYPAD_UP; if (keys[SC_CURSORUPRIGHT]) joystick1 |= (JOYPAD_UP|JOYPAD_RGT); if (keys[SC_CURSORRIGHT]) joystick1 |= JOYPAD_RGT; if (keys[SC_CURSORDOWNRIGHT]) joystick1 |= (JOYPAD_DN|JOYPAD_RGT); if (keys[SC_CURSORDOWN]) joystick1 |= JOYPAD_DN; if (keys[SC_CURSORDOWNLEFT]) joystick1 |= (JOYPAD_DN|JOYPAD_LFT); if (keys[SC_CURSORLEFT]) joystick1 |= JOYPAD_LFT; if (keys[SC_CURSORBLOCKLEFT]) joystick1 |= JOYPAD_LFT; if (keys[SC_CURSORBLOCKRIGHT]) joystick1 |= JOYPAD_RGT; if (keys[SC_CURSORBLOCKUP]) joystick1 |= JOYPAD_UP; if (keys[SC_CURSORBLOCKDOWN]) joystick1 |= JOYPAD_DN; if (keys[SC_KEYPADENTER]) joystick1 |= JOYPAD_A; if (keys[SC_ENTER]) joystick1 |= JOYPAD_A; if (keys[SC_SPACE]) joystick1 |= JOYPAD_A; if (keys[SC_LEFTALT]) joystick1 |= JOYPAD_TR; if (keys[SC_RIGHTALT]) joystick1 |= JOYPAD_TR; if (keys[SC_LEFTCONTROL]) joystick1 |= JOYPAD_B; if (keys[SC_RIGHTCONTROL]) joystick1 |= JOYPAD_B; if (keys[SC_LEFTSHIFT]) joystick1 |= (JOYPAD_X|JOYPAD_Y); if (keys[SC_RIGHTSHIFT]) joystick1 |= (JOYPAD_X|JOYPAD_Y); } if ((joystick1 & (JOYPAD_LFT|JOYPAD_RGT)) == (JOYPAD_LFT|JOYPAD_RGT)) joystick1 &= ~(JOYPAD_LFT|JOYPAD_RGT); if ((joystick1 & (JOYPAD_UP|JOYPAD_DN)) == (JOYPAD_UP|JOYPAD_DN)) joystick1 &= ~(JOYPAD_UP|JOYPAD_DN); if (joystick1 & JOYPAD_TR) { if (joystick1 & JOYPAD_LFT) { joystick1 = (joystick1 & ~(JOYPAD_TR|JOYPAD_LFT)) | JOYPAD_TL; } else if (joystick1 & JOYPAD_RGT) { joystick1 = joystick1 & ~JOYPAD_RGT; } else { joystick1 &= ~JOYPAD_TR; } } }
Byte CCipher::DecryptByte(Byte encryptedByte) { Byte c = (Byte)(encryptedByte ^ DecryptByteSpec()); UpdateKeys(c); return c; }