mirror of https://github.com/nmlgc/ReC98.git
[Maintenance] Make the locked condition handler macro publicly available
I've been thinking about a new directory for any core cross-platform
code that these game typically need. These range from stuff like the
hardware-independent pixel_t types (you shouldn't need to #include a
file named "pc98.h" for those), to stuff like this. "logic" might have
been a good directory name, but does it encompass rendering as well?
So, it'll just be "game" for now. 😶
Part of P0216, funded by JonathKane.
This commit is contained in:
parent
690b4df14b
commit
08fa2151ca
|
@ -0,0 +1,12 @@
|
||||||
|
// Shared input implementation macros.
|
||||||
|
|
||||||
|
#define on_condition_if_not_locked(condition, lock, func) { \
|
||||||
|
if(condition) { \
|
||||||
|
if(lock == false) { \
|
||||||
|
func \
|
||||||
|
} \
|
||||||
|
lock = true; \
|
||||||
|
} else { \
|
||||||
|
lock = false; \
|
||||||
|
} \
|
||||||
|
}
|
|
@ -6,6 +6,7 @@
|
||||||
#include "planar.h"
|
#include "planar.h"
|
||||||
#include "master.hpp"
|
#include "master.hpp"
|
||||||
#include "shiftjis.hpp"
|
#include "shiftjis.hpp"
|
||||||
|
#include "game/input.hpp"
|
||||||
#include "th01/rank.h"
|
#include "th01/rank.h"
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include "th01/hardware/grppsafx.h"
|
#include "th01/hardware/grppsafx.h"
|
||||||
|
@ -342,17 +343,6 @@ void near regist_name_enter(void)
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define on_action(condition, lock, func) { \
|
|
||||||
if(condition) { \
|
|
||||||
if(lock == false) { \
|
|
||||||
func \
|
|
||||||
} \
|
|
||||||
lock = true; \
|
|
||||||
} else { \
|
|
||||||
lock = false; \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
|
|
||||||
struct input_hold_frames_t {
|
struct input_hold_frames_t {
|
||||||
int up;
|
int up;
|
||||||
int down;
|
int down;
|
||||||
|
@ -417,7 +407,7 @@ void near regist_name_enter(void)
|
||||||
rerender = true;
|
rerender = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
on_action(
|
on_condition_if_not_locked(
|
||||||
((input_sp & INPUT_OK) || (input_sp & INPUT_SHOT)), enter_locked, {
|
((input_sp & INPUT_OK) || (input_sp & INPUT_SHOT)), enter_locked, {
|
||||||
if(regi == REGI_BS) {
|
if(regi == REGI_BS) {
|
||||||
cursor_backspace(cursor_backwards, top);
|
cursor_backspace(cursor_backwards, top);
|
||||||
|
@ -435,7 +425,7 @@ void near regist_name_enter(void)
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
on_action((input_sp & INPUT_BOMB), back_locked, { \
|
on_condition_if_not_locked((input_sp & INPUT_BOMB), back_locked, { \
|
||||||
cursor_backspace(cursor_backwards, top);
|
cursor_backspace(cursor_backwards, top);
|
||||||
rerender = true;
|
rerender = true;
|
||||||
});
|
});
|
||||||
|
@ -465,6 +455,5 @@ void near regist_name_enter(void)
|
||||||
frame_delay(1);
|
frame_delay(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef on_action
|
|
||||||
#undef on_direction
|
#undef on_direction
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue