diff options
| author | Sonic Dreamcaster <alejandro.asenjo88@gmail.com> | 2025-04-11 05:34:26 -0300 |
|---|---|---|
| committer | Sonic Dreamcaster <alejandro.asenjo88@gmail.com> | 2025-04-11 05:34:26 -0300 |
| commit | af686894f2048db4e5094eaa9c86de0285b72646 (patch) | |
| tree | 474a1813d824a83c1b29a497515a9b877b5f93a3 /include | |
| parent | daa711f29001a67bd3925fa54bb1a87337d4e23e (diff) | |
fix Electric Arc interpolation
Diffstat (limited to 'include')
| -rw-r--r-- | include/sf64_tagging.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/include/sf64_tagging.h b/include/sf64_tagging.h new file mode 100644 index 00000000..26503a54 --- /dev/null +++ b/include/sf64_tagging.h @@ -0,0 +1,31 @@ +#ifndef SF64_TAGGING +#define SF64_TAGGING + +/* For dynamic actors */ +#define TAG_ADDRESS(ptr) ((u32) (ptr) & 0x0FFFFFFF) + +/* + X XXX XX XX + TYPE ID INDEX CUSTOM +*/ +#define TAG_OBJ(ptr) (((((ptr)->obj.id) << 16) & 0x0FFF0000) | ((((ptr)->index) << 8) & 0x0000FF00)) + +/* Actor Types */ +#define TAG_ACTOR(actor) ((u32) (0x10000000 | (TAG_OBJ(actor)))) +#define TAG_ACTOR_EVENT(actor) ((u32) (0x20000000 | (TAG_OBJ(actor)))) +#define TAG_ACTOR_EVENT_COMMON(actor) ((u32) (0x90000000 | (TAG_OBJ(actor)))) +#define TAG_BOSS(boss) ((u32) (0x30000000 | (TAG_OBJ(boss)))) +#define TAG_SCENERY(scenery) ((u32) (0x40000000 | (TAG_OBJ(scenery)))) +#define TAG_SCENERY_360(scenery360) ((u32) (0x50000000 | (TAG_ADDRESS(scenery360)))) +#define TAG_EFFECT(effect) ((u32) (0x60000000 | (TAG_OBJ(effect)))) +#define TAG_ITEM(item) ((u32) (0x70000000 | (TAG_OBJ(item)))) +#define TAG_PLAYER_SHOT(shot) ((u32) (0xC0000000 | (TAG_OBJ(shot)))) + +/* Skeletons */ +#define TAG_LIMB_ADDRESS(ptr, data) ((((u32) (ptr) << 16) & 0xFFFF0000) | ((u32) (data) & 0x0000FFFF)) +#define TAG_LIMB(limb, data) ((u32) (0x80000000 | (TAG_LIMB_ADDRESS(limb, data)))) + +/* Others */ +#define TAG_ARWING_SKEL(arwing) (0xB0000000 | (((u32) (arwing) << 16) & 0x0FFF0000)) + +#endif |
