Files
ac-decomp/src/ac_npc_engineer.c
T
2024-01-05 15:20:07 +01:00

73 lines
2.3 KiB
C

#include "ac_npc_engineer.h"
#include "m_name_table.h"
#include "m_common_data.h"
extern void aNEG_actor_ct(ACTOR* actor, GAME* game);
extern void aNEG_actor_dt(ACTOR* actor, GAME* game);
extern void aNEG_actor_init(ACTOR* actor, GAME* game);
extern void aNEG_actor_save(ACTOR* actor, GAME* game);
ACTOR_PROFILE Npc_Engineer_Profile = {
mAc_PROFILE_NPC_ENGINEER,
ACTOR_PART_NPC,
ACTOR_STATE_CAN_MOVE_IN_DEMO_SCENES | ACTOR_STATE_NO_MOVE_WHILE_CULLED,
EMPTY_NO,
ACTOR_OBJ_BANK_KEEP,
sizeof(NPCENGINEER_ACTOR),
aNEG_actor_ct,
aNEG_actor_dt,
aNEG_actor_init,
mActor_NONE_PROC1,
aNEG_actor_save,
};
void aNEG_actor_move(ACTOR*, GAME*);
void aNEG_actor_draw(ACTOR*, GAME*);
void aNEG_actor_ct(ACTOR* actor, GAME* game){
static aNPC_ct_data_c ct_data = {
&aNEG_actor_move,
&aNEG_actor_draw,
5,
NULL,
NULL,
NULL,
0,
};
NPCENGINEER_ACTOR* engineer = (NPCENGINEER_ACTOR*)actor;
if(Common_Get(clip.npc_clip)->birth_check_proc(actor,game) == TRUE){
engineer->npc_class.schedule.schedule_proc = (aNPC_SCHEDULE_PROC)mActor_NONE_PROC1;
Common_Get(clip.npc_clip)->ct_proc(actor,game,&ct_data);
engineer->npc_class.condition_info.demo_flg = -1;
engineer->npc_class.condition_info.hide_request = 0;
engineer->npc_class.palActorIgnoreTimer = -1;
engineer->npc_class.actor_class.status_data.weight = MASSTYPE_HEAVY;
engineer->npc_class.actor_class.shape_info.rotation.y = 0x4000;
engineer->npc_class.actor_class.world.angle.y = 0x4000;
engineer->npc_class.movement.mv_angl = 0x4000;
engineer->npc_class.request.act_priority = 4;
engineer->npc_class.request.act_idx = 0;
engineer->npc_class.request.act_type = 0;
}
}
void aNEG_actor_save(ACTOR* actor, GAME* game) {
Common_Get(clip.npc_clip)->save_proc(actor,game);
}
void aNEG_actor_dt(ACTOR* actor, GAME* game) {
Common_Get(clip.npc_clip)->dt_proc(actor,game);
}
void aNEG_actor_init(ACTOR* actor, GAME* game) {
Common_Get(clip.npc_clip)->init_proc(actor,game);
}
void aNEG_actor_move(ACTOR* actor, GAME* game){
Common_Get(clip.npc_clip)->move_proc(actor,game);
}
void aNEG_actor_draw(ACTOR* actor, GAME* game) {
Common_Get(clip.npc_clip)->draw_proc(actor,game);
}