Clean up En_Giant header (#614)

* Clean up En_Giant header

* Run ./format.sh

* Move defines to be near the enums

* Move the limb enum to the object
This commit is contained in:
Tom Overton 2022-02-13 16:21:28 -08:00 committed by GitHub
parent 009ad45f48
commit 7ba82882b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 70 additions and 86 deletions

View File

@ -51,24 +51,24 @@
<Texture Name="gGiantBeardTex" OutName="giant_beard" Format="rgba16" Width="16" Height="16" Offset="0x76C0" />
<!-- Giant Limbs -->
<Limb Name="gGiantHeadLimb" Type="Standard" Offset="0x78C0" />
<Limb Name="gGiantLeftThighLimb" Type="Standard" Offset="0x78CC" />
<Limb Name="gGiantLeftShinLimb" Type="Standard" Offset="0x78D8" />
<Limb Name="gGiantLeftFootLimb" Type="Standard" Offset="0x78E4" />
<Limb Name="gGiantRightThighLimb" Type="Standard" Offset="0x78F0" />
<Limb Name="gGiantRightShinLimb" Type="Standard" Offset="0x78FC" />
<Limb Name="gGiantRightFootLimb" Type="Standard" Offset="0x7908" />
<Limb Name="gGiantLeftShoulderLimb" Type="Standard" Offset="0x7914" />
<Limb Name="gGiantLeftUpperArmLimb" Type="Standard" Offset="0x7920" />
<Limb Name="gGiantLeftForearmLimb" Type="Standard" Offset="0x792C" />
<Limb Name="gGiantLeftHandLimb" Type="Standard" Offset="0x7938" />
<Limb Name="gGiantRightShoulderLimb" Type="Standard" Offset="0x7944" />
<Limb Name="gGiantRightUpperArmLimb" Type="Standard" Offset="0x7950" />
<Limb Name="gGiantRightForearmLimb" Type="Standard" Offset="0x795C" />
<Limb Name="gGiantRightHandLimb" Type="Standard" Offset="0x7968" />
<Limb Name="gGiantHeadLimb" Type="Standard" EnumName="GIANT_LIMB_HEAD" Offset="0x78C0" />
<Limb Name="gGiantLeftThighLimb" Type="Standard" EnumName="GIANT_LIMB_LEFT_THIGH" Offset="0x78CC" />
<Limb Name="gGiantLeftShinLimb" Type="Standard" EnumName="GIANT_LIMB_LEFT_SHIN" Offset="0x78D8" />
<Limb Name="gGiantLeftFootLimb" Type="Standard" EnumName="GIANT_LIMB_LEFT_FOOT" Offset="0x78E4" />
<Limb Name="gGiantRightThighLimb" Type="Standard" EnumName="GIANT_LIMB_RIGHT_THIGH" Offset="0x78F0" />
<Limb Name="gGiantRightShinLimb" Type="Standard" EnumName="GIANT_LIMB_RIGHT_SHIN" Offset="0x78FC" />
<Limb Name="gGiantRightFootLimb" Type="Standard" EnumName="GIANT_LIMB_RIGHT_FOOT" Offset="0x7908" />
<Limb Name="gGiantLeftShoulderLimb" Type="Standard" EnumName="GIANT_LIMB_LEFT_SHOULDER" Offset="0x7914" />
<Limb Name="gGiantLeftUpperArmLimb" Type="Standard" EnumName="GIANT_LIMB_LEFT_UPPER_ARM" Offset="0x7920" />
<Limb Name="gGiantLeftForearmLimb" Type="Standard" EnumName="GIANT_LIMB_LEFT_FOREARM" Offset="0x792C" />
<Limb Name="gGiantLeftHandLimb" Type="Standard" EnumName="GIANT_LIMB_LEFT_HAND" Offset="0x7938" />
<Limb Name="gGiantRightShoulderLimb" Type="Standard" EnumName="GIANT_LIMB_RIGHT_SHOULDER" Offset="0x7944" />
<Limb Name="gGiantRightUpperArmLimb" Type="Standard" EnumName="GIANT_LIMB_RIGHT_UPPER_ARM" Offset="0x7950" />
<Limb Name="gGiantRightForearmLimb" Type="Standard" EnumName="GIANT_LIMB_RIGHT_FOREARM" Offset="0x795C" />
<Limb Name="gGiantRightHandLimb" Type="Standard" EnumName="GIANT_LIMB_RIGHT_HAND" Offset="0x7968" />
<!-- Giant Skeleton -->
<Skeleton Name="gGiantSkel" Type="Flex" LimbType="Standard" Offset="0x79B0" />
<Skeleton Name="gGiantSkel" Type="Flex" LimbType="Standard" LimbNone="GIANT_LIMB_NONE" LimbMax="GIANT_LIMB_MAX" EnumName="EnGiantLimbs" Offset="0x79B0" />
<!-- Giant Animations -->
<Animation Name="gGiantLookUpStartAnim" Offset="0x8394" /> <!-- Original name is "kyo_kaoage" ("raising face") -->

View File

@ -5,7 +5,6 @@
*/
#include "z_en_giant.h"
#include "objects/object_giant/object_giant.h"
#define FLAGS 0x00000030
@ -20,6 +19,59 @@ void EnGiant_PerformClockTowerSuccessActions(EnGiant* this, GlobalContext* globa
void EnGiant_PlayClockTowerFailureAnimation(EnGiant* this, GlobalContext* globalCtx);
void EnGiant_PerformCutsceneActions(EnGiant* this, GlobalContext* globalCtx);
#define GIANT_TYPE_IS_NOT_TERMINA_FIELD(type) (type > GIANT_TYPE_OCEAN_TERMINA_FIELD)
#define GIANT_TYPE_IS_TERMINA_FIELD(type) (type <= GIANT_TYPE_OCEAN_TERMINA_FIELD)
#define GIANT_TYPE_IS_CLOCK_TOWER_SUCCESS(type) \
(type >= GIANT_TYPE_MOUNTAIN_CLOCK_TOWER_SUCCESS && type <= GIANT_TYPE_OCEAN_CLOCK_TOWER_SUCCESS)
#define GIANT_TYPE_IS_CHAMBER_OR_ENDING(type) \
(type >= GIANT_TYPE_MOUNTAIN_GIANTS_CHAMBER_AND_ENDING && type <= GIANT_TYPE_OCEAN_GIANTS_CHAMBER_AND_ENDING)
#define GIANT_TYPE_IS_CLOCK_TOWER_FAILURE(type) \
(type >= GIANT_TYPE_MOUNTAIN_CLOCK_TOWER_FAILURE && type <= GIANT_TYPE_OCEAN_CLOCK_TOWER_FAILURE)
/**
* These values are used to index into sAnimations to pick the appropriate animation.
*/
typedef enum {
/* 0 */ GIANT_ANIMATION_LOOK_UP_START,
/* 1 */ GIANT_ANIMATION_LOOK_UP_LOOP,
/* 2 */ GIANT_ANIMATION_FALLING_OVER,
/* 3 */ GIANT_ANIMATION_RAISED_ARMS_START,
/* 4 */ GIANT_ANIMATION_RAISED_ARMS_LOOP,
/* 5 */ GIANT_ANIMATION_STRUGGLE_START,
/* 6 */ GIANT_ANIMATION_STRUGGLE_LOOP,
/* 7 */ GIANT_ANIMATION_IDLE_LOOP,
/* 8 */ GIANT_ANIMATION_WALKING_LOOP,
/* 9 */ GIANT_ANIMATION_BIG_CALL_START,
/* 10 */ GIANT_ANIMATION_BIG_CALL_LOOP,
/* 11 */ GIANT_ANIMATION_BIG_CALL_END,
/* 12 */ GIANT_ANIMATION_SMALL_CALL_START,
/* 13 */ GIANT_ANIMATION_SMALL_CALL_LOOP,
/* 14 */ GIANT_ANIMATION_SMALL_CALL_END,
/* 15 */ GIANT_ANIMATION_MAX
} GiantAnimationIndex;
/**
* Used as values for csAction. The UNKNOWN ones are never used in-game.
*/
typedef enum {
/* 0 */ GIANT_CS_ACTION_NONE,
/* 1 */ GIANT_CS_ACTION_IDLE,
/* 2 */ GIANT_CS_ACTION_WALKING,
/* 3 */ GIANT_CS_ACTION_LOOKING_UP,
/* 4 */ GIANT_CS_ACTION_RAISING_ARMS,
/* 5 */ GIANT_CS_ACTION_STRUGGLING,
/* 6 */ GIANT_CS_ACTION_FALLING_OVER,
/* 7 */ GIANT_CS_ACTION_IDLE_FADE_IN,
/* 8 */ GIANT_CS_ACTION_TALKING,
/* 9 */ GIANT_CS_ACTION_DONE_TALKING,
/* 10 */ GIANT_CS_ACTION_TEACHING_OATH_TO_ORDER,
/* 11 */ GIANT_CS_ACTION_PLAYER_LEARNED_OATH_TO_ORDER,
/* 12 */ GIANT_CS_ACTION_UNKNOWN_12,
/* 13 */ GIANT_CS_ACTION_UNKNOWN_13,
/* 14 */ GIANT_CS_ACTION_UNKNOWN_14,
/* 15 */ GIANT_CS_ACTION_HOLDING_UP_MOON_IN_CLOCK_TOWER
} GiantCsActionIndex;
const ActorInit En_Giant_InitVars = {
ACTOR_EN_GIANT,
ACTORCAT_NPC,

View File

@ -2,13 +2,9 @@
#define Z_EN_GIANT_H
#include "global.h"
#include "objects/object_giant/object_giant.h"
#define GIANT_TYPE(thisx) ((thisx)->params & 0xF)
#define GIANT_TYPE_IS_NOT_TERMINA_FIELD(type) (type > GIANT_TYPE_OCEAN_TERMINA_FIELD)
#define GIANT_TYPE_IS_TERMINA_FIELD(type) (type <= GIANT_TYPE_OCEAN_TERMINA_FIELD)
#define GIANT_TYPE_IS_CLOCK_TOWER_SUCCESS(type) (type >= GIANT_TYPE_MOUNTAIN_CLOCK_TOWER_SUCCESS && type <= GIANT_TYPE_OCEAN_CLOCK_TOWER_SUCCESS)
#define GIANT_TYPE_IS_CHAMBER_OR_ENDING(type) (type >= GIANT_TYPE_MOUNTAIN_GIANTS_CHAMBER_AND_ENDING && type <= GIANT_TYPE_OCEAN_GIANTS_CHAMBER_AND_ENDING)
#define GIANT_TYPE_IS_CLOCK_TOWER_FAILURE(type) (type >= GIANT_TYPE_MOUNTAIN_CLOCK_TOWER_FAILURE && type <= GIANT_TYPE_OCEAN_CLOCK_TOWER_FAILURE)
/**
* The giants are divided into types based on where in the game they appear.
@ -42,70 +38,6 @@ typedef enum {
/* 15 */ GIANT_TYPE_OCEAN_CLOCK_TOWER_FAILURE,
} GiantType;
/**
* These values are used to index into sAnimationTable to pick the appropriate animation.
*/
typedef enum {
/* 0 */ GIANT_ANIMATION_LOOK_UP_START,
/* 1 */ GIANT_ANIMATION_LOOK_UP_LOOP,
/* 2 */ GIANT_ANIMATION_FALLING_OVER,
/* 3 */ GIANT_ANIMATION_RAISED_ARMS_START,
/* 4 */ GIANT_ANIMATION_RAISED_ARMS_LOOP,
/* 5 */ GIANT_ANIMATION_STRUGGLE_START,
/* 6 */ GIANT_ANIMATION_STRUGGLE_LOOP,
/* 7 */ GIANT_ANIMATION_IDLE_LOOP,
/* 8 */ GIANT_ANIMATION_WALKING_LOOP,
/* 9 */ GIANT_ANIMATION_BIG_CALL_START,
/* 10 */ GIANT_ANIMATION_BIG_CALL_LOOP,
/* 11 */ GIANT_ANIMATION_BIG_CALL_END,
/* 12 */ GIANT_ANIMATION_SMALL_CALL_START,
/* 13 */ GIANT_ANIMATION_SMALL_CALL_LOOP,
/* 14 */ GIANT_ANIMATION_SMALL_CALL_END,
/* 15 */ GIANT_ANIMATION_MAX
} GiantAnimationIndex;
/**
* Used as values for csAction. The UNKNOWN ones are never used in-game.
*/
typedef enum {
/* 0 */ GIANT_CS_ACTION_NONE,
/* 1 */ GIANT_CS_ACTION_IDLE,
/* 2 */ GIANT_CS_ACTION_WALKING,
/* 3 */ GIANT_CS_ACTION_LOOKING_UP,
/* 4 */ GIANT_CS_ACTION_RAISING_ARMS,
/* 5 */ GIANT_CS_ACTION_STRUGGLING,
/* 6 */ GIANT_CS_ACTION_FALLING_OVER,
/* 7 */ GIANT_CS_ACTION_IDLE_FADE_IN,
/* 8 */ GIANT_CS_ACTION_TALKING,
/* 9 */ GIANT_CS_ACTION_DONE_TALKING,
/* 10 */ GIANT_CS_ACTION_TEACHING_OATH_TO_ORDER,
/* 11 */ GIANT_CS_ACTION_PLAYER_LEARNED_OATH_TO_ORDER,
/* 12 */ GIANT_CS_ACTION_UNKNOWN_12,
/* 13 */ GIANT_CS_ACTION_UNKNOWN_13,
/* 14 */ GIANT_CS_ACTION_UNKNOWN_14,
/* 15 */ GIANT_CS_ACTION_HOLDING_UP_MOON_IN_CLOCK_TOWER
} GiantCsActionIndex;
typedef enum {
/* 0 */ GIANT_LIMB_NONE,
/* 1 */ GIANT_LIMB_HEAD,
/* 2 */ GIANT_LIMB_LEFT_THIGH,
/* 3 */ GIANT_LIMB_LEFT_LOWER_LEG,
/* 4 */ GIANT_LIMB_LEFT_FOOT,
/* 5 */ GIANT_LIMB_RIGHT_THIGH,
/* 6 */ GIANT_LIMB_RIGHT_LOWER_LEG,
/* 7 */ GIANT_LIMB_RIGHT_FOOT,
/* 8 */ GIANT_LIMB_LEFT_SHOULDER,
/* 9 */ GIANT_LIMB_LEFT_UPPER_ARM,
/* 10 */ GIANT_LIMB_LEFT_FOREARM,
/* 11 */ GIANT_LIMB_LEFT_HAND,
/* 12 */ GIANT_LIMB_RIGHT_SHOULDER,
/* 13 */ GIANT_LIMB_RIGHT_UPPER_ARM,
/* 14 */ GIANT_LIMB_RIGHT_FOREARM,
/* 15 */ GIANT_LIMB_RIGHT_HAND,
/* 16 */ GIANT_LIMB_MAX,
} EnGiantLimbs;
struct EnGiant;
typedef void (*EnGiantActionFunc)(struct EnGiant*, GlobalContext*);