diff options
| author | Anghelo Carvajal <angheloalf95@gmail.com> | 2023-05-04 00:43:27 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-04 00:43:27 -0400 |
| commit | eaf682dc0596a6b12bab32b2498657ecd38b0895 (patch) | |
| tree | 38090364040b67ff9fad4f4e33fd5b7dafb0ba72 /src/code | |
| parent | fc3da8451ac4270bbe2f63102010d6726c562240 (diff) | |
Transition table (#1210)
* transition_table.h
* format
* Update include/tables/transition_table.h
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
* review
* review
* bss
---------
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/sched.c | 1 | ||||
| -rw-r--r-- | src/code/z_fbdemo_dlftbls.c | 46 |
2 files changed, 28 insertions, 19 deletions
diff --git a/src/code/sched.c b/src/code/sched.c index 98b005ba1..c2630677c 100644 --- a/src/code/sched.c +++ b/src/code/sched.c @@ -1,3 +1,4 @@ +#include "prevent_bss_reordering.h" #include "global.h" #include "stackcheck.h" diff --git a/src/code/z_fbdemo_dlftbls.c b/src/code/z_fbdemo_dlftbls.c index 9d3685a45..48d424813 100644 --- a/src/code/z_fbdemo_dlftbls.c +++ b/src/code/z_fbdemo_dlftbls.c @@ -1,30 +1,38 @@ #include "global.h" -#include "initvars.h" -#include "overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.h" -#include "overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h" -#include "overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h" -#include "overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.h" -#include "overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.h" -#define TRANSITION_OVERLAY(name, filename) \ - { \ - { 0, 0 }, SEGMENT_START(ovl_##filename), SEGMENT_END(ovl_##filename), SEGMENT_ROM_START(ovl_##filename), \ - SEGMENT_ROM_END(ovl_##filename), &name##_InitVars, sizeof(name) \ - } +// InitVars and Linker symbol declarations (used in the table below) +#define DEFINE_TRANSITION(_enumValue, structName, _instanceName, name) \ + extern TransitionInit structName##_InitVars; \ + DECLARE_OVERLAY_SEGMENT(name) -#define TRANSITION_OVERLAY_INTERNAL(name) \ - { { 0, 0 }, NULL, NULL, 0, 0, &name##_InitVars, sizeof(name) } +#define DEFINE_TRANSITION_INTERNAL(_enumValue, structName, _instanceName) extern TransitionInit structName##_InitVars; -#define TRANSITION_OVERLAY_UNSET \ - { 0 } +#include "tables/transition_table.h" + +#undef DEFINE_TRANSITION +#undef DEFINE_TRANSITION_INTERNAL + +#define DEFINE_TRANSITION(_enumValue, structName, _instanceName, name) \ + { \ + { 0, 0 }, \ + SEGMENT_START(ovl_##name), \ + SEGMENT_END(ovl_##name), \ + SEGMENT_ROM_START(ovl_##name), \ + SEGMENT_ROM_END(ovl_##name), \ + &structName##_InitVars, \ + sizeof(structName), \ + }, + +#define DEFINE_TRANSITION_INTERNAL(_enumValue, structName, _instanceName) \ + { { 0, 0 }, NULL, NULL, 0, 0, &structName##_InitVars, sizeof(structName) }, TransitionOverlay gTransitionOverlayTable[] = { - TRANSITION_OVERLAY_INTERNAL(TransitionFade), TRANSITION_OVERLAY(TransitionTriforce, fbdemo_triforce), - TRANSITION_OVERLAY(TransitionWipe1, fbdemo_wipe1), TRANSITION_OVERLAY(TransitionWipe3, fbdemo_wipe3), - TRANSITION_OVERLAY(TransitionWipe4, fbdemo_wipe4), TRANSITION_OVERLAY_INTERNAL(TransitionCircle), - TRANSITION_OVERLAY(TransitionWipe5, fbdemo_wipe5), +#include "tables/transition_table.h" }; +#undef DEFINE_TRANSITION +#undef DEFINE_TRANSITION_INTERNAL + void Transition_Init(TransitionContext* transitionCtx) { TransitionOverlay* overlayEntry; ptrdiff_t relocOffset; |
