mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-26 07:18:50 -04:00
73 lines
2.3 KiB
C
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);
|
|
}
|