# HG changeset patch # User Emmanuel Gil Peyrot # Date 1376754251 -7200 # Node ID 3bc37791f0a2ac46adf1b9aced8906ec34735571 # Parent 78e1c3864e730737d2217a45028efe4876f0a366 Make Bullet.state an enum. diff --git a/pytouhou/game/bullet.pxd b/pytouhou/game/bullet.pxd --- a/pytouhou/game/bullet.pxd +++ b/pytouhou/game/bullet.pxd @@ -2,8 +2,14 @@ from pytouhou.game.element cimport Eleme from pytouhou.game.game cimport Game from pytouhou.utils.interpolator cimport Interpolator + +cdef enum State: + LAUNCHING, LAUNCHED, CANCELLED + + cdef class Bullet(Element): - cdef public unsigned long state, flags, frame, sprite_idx_offset, damage + cdef public State state + cdef public unsigned long flags, frame, sprite_idx_offset, damage cdef public double dx, dy, angle, speed cdef public bint player_bullet, was_visible, grazed cdef public object target, _bullet_type diff --git a/pytouhou/game/bullet.pyx b/pytouhou/game/bullet.pyx --- a/pytouhou/game/bullet.pyx +++ b/pytouhou/game/bullet.pyx @@ -18,8 +18,6 @@ from pytouhou.vm.anmrunner import ANMRun from pytouhou.game.sprite cimport Sprite -LAUNCHING, LAUNCHED, CANCELLED = range(3) - cdef class Bullet(Element): def __init__(self, pos, bullet_type, unsigned long sprite_idx_offset, double angle, double speed, attributes, unsigned long flags, target, Game game, diff --git a/pytouhou/game/enemy.pyx b/pytouhou/game/enemy.pyx --- a/pytouhou/game/enemy.pyx +++ b/pytouhou/game/enemy.pyx @@ -16,7 +16,7 @@ from libc.math cimport cos, sin, atan2, from pytouhou.vm.anmrunner import ANMRunner from pytouhou.game.sprite import Sprite -from pytouhou.game.bullet import Bullet, LAUNCHED +from pytouhou.game.bullet cimport Bullet, LAUNCHED from pytouhou.game.laser import Laser from pytouhou.game.effect cimport Effect diff --git a/pytouhou/game/game.pyx b/pytouhou/game/game.pyx --- a/pytouhou/game/game.pyx +++ b/pytouhou/game/game.pyx @@ -15,8 +15,7 @@ from pytouhou.vm.msgrunner import MSGRunner from pytouhou.game.element cimport Element -from pytouhou.game.bullet cimport Bullet -from pytouhou.game.bullet import LAUNCHED, CANCELLED +from pytouhou.game.bullet cimport Bullet, LAUNCHED, CANCELLED from pytouhou.game.enemy cimport Enemy from pytouhou.game.item cimport Item from pytouhou.game.effect cimport Particle @@ -291,8 +290,10 @@ cdef class Game: cdef void update_msg(self, long keystate) except *: cdef long k - if any([(keystate & k and not self.last_keystate & k) for k in (1, 256)]): - self.msg_runner.skip() + for k in (1, 256): + if keystate & k and not self.last_keystate & k: + self.msg_runner.skip() + break self.msg_runner.skipping = bool(keystate & 256) self.last_keystate = keystate self.msg_runner.run_iteration()