//========================================================= // HandleAnimEvent - catches the monster-specific messages // that occur when tagged animation frames are played. // // Returns number of events handled, 0 if none. //========================================================= void COtis :: HandleAnimEvent( MonsterEvent_t *pEvent ) { switch( pEvent->event ) { case OTIS_AE_SHOOT: Eagle(); break; case OTIS_AE_DRAW: // otis's bodygroup switches here so he can pull gun from holster SetBodygroup( OT_GUN_GROUP, OT_GUN_DRAWN ); m_fGunDrawn = TRUE; break; case OTIS_AE_HOLSTER: // change bodygroup to replace gun in holster SetBodygroup( OT_GUN_GROUP, OT_GUN_HOLSTER ); m_fGunDrawn = FALSE; break; default: CTalkMonster::HandleAnimEvent( pEvent ); } }
EXPORT(void) FlipScreen() { if (SDL_MUSTLOCK(SDLScreenBuffer)) if (SDL_LockSurface(SDLScreenBuffer) != 0) return; int pitch = SDLScreenBuffer->pitch / sizeof(BGRA); if (Config.scale) { switch (Config.filter) { case I_NONE: DirectScale((dword*)SDLScreenBuffer->pixels, pitch, (dword*)ScreenBuffer, ScreenBufferWidth, ScreenBufferHeight); break; case I_SCALE2X: Scale2x( (dword*)SDLScreenBuffer->pixels, pitch, (dword*)ScreenBuffer, ScreenBufferWidth, ScreenBufferHeight); break; case I_EAGLE: Eagle( (dword*)SDLScreenBuffer->pixels, pitch, (dword*)ScreenBuffer, ScreenBufferWidth, ScreenBufferHeight); break; case I_HQ2X: hq2x( (dword*)SDLScreenBuffer->pixels, pitch, (dword*)ScreenBuffer, ScreenBufferWidth, ScreenBufferHeight); break; case I_2XSAI: _2xSaI( (dword*)SDLScreenBuffer->pixels, pitch, (dword*)ScreenBuffer, ScreenBufferWidth, ScreenBufferHeight); break; case I_SUPER_2XSAI: Super2xSaI( (dword*)SDLScreenBuffer->pixels, pitch, (dword*)ScreenBuffer, ScreenBufferWidth, ScreenBufferHeight); break; case I_SUPER_EAGLE: SuperEagle( (dword*)SDLScreenBuffer->pixels, pitch, (dword*)ScreenBuffer, ScreenBufferWidth, ScreenBufferHeight); break; } } else { BGRA* dst = (BGRA*)SDLScreenBuffer->pixels; BGRA* src = ScreenBuffer; for (int i = 0; i < ScreenBufferHeight; ++i) { memcpy(dst, src, ScreenBufferWidth * sizeof(BGRA)); dst += pitch; src += ScreenBufferWidth; } } if (SDL_MUSTLOCK(SDLScreenBuffer)) SDL_UnlockSurface(SDLScreenBuffer); SDL_Flip(SDLScreenBuffer); }