mirror of
https://github.com/zeldaret/af.git
synced 2026-09-26 21:35:21 -04:00
efd664e219
* m_npc_schedule OK Co-authored-by: Maide <you@example.com> * fix structs * fixes --------- Co-authored-by: Maide <you@example.com>
47 lines
1.4 KiB
C
47 lines
1.4 KiB
C
#ifndef M_NPC_SCHEDULE_H
|
|
#define M_NPC_SCHEDULE_H
|
|
|
|
#include "ultra64.h"
|
|
#include "m_npc.h"
|
|
|
|
typedef enum NpsScheduleType{
|
|
/* 0 */ NPS_SCHEDULE_FIELD, /* in same acre as their home */
|
|
/* 1 */ NPS_SCHEDULE_IN_HOUSE, /* inside their house */
|
|
/* 2 */ NPS_SCHEDULE_SLEEP, /* asleep in their house */
|
|
/* 3 */ NPS_SCHEDULE_STAND, /* standing around town?? */
|
|
/* 4 */ NPS_SCHEDULE_WANDER, /* wander around town */
|
|
/* 5 */ NPS_SCHEDULE_SPECIAL, /* unique schedule method for each NPC actor type */
|
|
/* 6 */ NPS_SCHEDULE_TYPE_NUM
|
|
} NpsScheduleType;
|
|
|
|
typedef struct NpsScheduleData {
|
|
/* 0x00 */ NpsScheduleType type;
|
|
/* 0x04 */ s32 endTime;
|
|
} NpsScheduleData; // size = 0x8
|
|
|
|
typedef struct NpsScheduleDataTable {
|
|
/* 0x00 */ s32 count;
|
|
/* 0x04 */ NpsScheduleData* scheduleData;
|
|
} NpsScheduleDataTable; // size = 0x8
|
|
|
|
typedef struct NpsSchedule{
|
|
/* 0x00 */ AnmPersonalID_c* id;
|
|
/* 0x04 */ NpsScheduleDataTable* dataTable;
|
|
/* 0x08 */ u8 currentType;
|
|
/* 0x09 */ u8 forcedType;
|
|
/* 0x0A */ u8 savedType;
|
|
/* 0x0C */ s32 forcedTimer;
|
|
}NpsSchedule; // size = 0x10
|
|
|
|
|
|
|
|
NpsSchedule* mNPS_get_schedule_area(AnmPersonalID_c* id);
|
|
void mNPS_set_schedule_area(AnmPersonalID_c* id);
|
|
void mNPS_reset_schedule_area(AnmPersonalID_c* id);
|
|
void mNPS_schedule_manager_sub0(void);
|
|
void mNPS_schedule_manager_sub(void);
|
|
void mNPS_schedule_manager(void);
|
|
void mNPS_set_all_schedule_area(void);
|
|
|
|
#endif
|