Implement & link ac_lighthouse_switch

This commit is contained in:
Cuyler36
2025-06-06 23:59:56 -04:00
parent 0fafbe687f
commit 3d6c31cffe
5 changed files with 499 additions and 2 deletions
+46 -1
View File
@@ -3,11 +3,57 @@
#include "types.h"
#include "m_actor.h"
#include "c_keyframe.h"
#ifdef __cplusplus
extern "C" {
#endif
#define aLS_SWITCH_JOINT_NUM 1
enum {
aLS_NICE_STATUS_OFF,
aLS_NICE_STATUS_SWITCH_ON,
aLS_NICE_STATUS_LIGHTHOUSE_PERIOD,
aLS_NICE_STATUS_NUM
};
typedef struct lighthouse_switch_s {
xyz_t pos;
s16 state;
cKF_SkeletonInfo_R_c keyframe;
s_xyz work[aLS_SWITCH_JOINT_NUM+1];
s_xyz morph[aLS_SWITCH_JOINT_NUM+1];
Mtx mtx[2][aLS_SWITCH_JOINT_NUM+1];
} aLS_switch_c;
#define aLS_POLE_JOINT_NUM 10
#define aLS_POLE_ALL_JOINT_NUM 13
typedef struct lighthouse_pole_s {
xyz_t pos;
f32 speed;
s16 state;
s16 timer;
s16 off_timer;
int keyframe_state;
int _1C;
cKF_SkeletonInfo_R_c keyframe;
s_xyz work[aLS_POLE_JOINT_NUM+1];
s_xyz morph[aLS_POLE_JOINT_NUM+1];
Mtx mtx[2][aLS_POLE_ALL_JOINT_NUM+1];
} aLS_pole_c;
typedef struct lighthouse_switch_actor_s LIGHTHOUSE_SWITCH_ACTOR;
struct lighthouse_switch_actor_s {
ACTOR actor_class;
aLS_switch_c ls_switch;
aLS_pole_c ls_pole;
s16 turning_on;
};
extern ACTOR_PROFILE Lighthouse_Switch_Profile;
#ifdef __cplusplus
@@ -15,4 +61,3 @@ extern ACTOR_PROFILE Lighthouse_Switch_Profile;
#endif
#endif
+2
View File
@@ -137,6 +137,8 @@ typedef enum audio_sound_effects {
NA_SE_TOOL_BROKEN2,
NA_SE_TOOL_BROKEN3,
NA_SE_78 = 0x78,
NA_SE_STONECOIN_ROLL = 0x7D,
NA_SE_STONECOIN_DRAG = 0x7E,
+1
View File
@@ -58,6 +58,7 @@ extern "C" {
// short angle difference
#define DIFF_SHORT_ANGLE(x, y) ((s16)((x) - (y)))
#define DIFF_USHORT_ANGLE(x, y) ((u16)((x) - (y)))
typedef struct rgba_t { // can be put in other place
u8 r, g, b, a;