mirror of
https://github.com/zeldaret/tp
synced 2026-07-09 06:53:23 -04:00
passer_mng work (#2328)
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
#ifndef D_A_PASSER_MNG_H
|
||||
#define D_A_PASSER_MNG_H
|
||||
|
||||
#include "SSystem/SComponent/c_lib.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class dPath;
|
||||
|
||||
/**
|
||||
* @ingroup actors-unsorted
|
||||
* @class daPasserMng_c
|
||||
@@ -13,17 +16,271 @@
|
||||
*/
|
||||
class daPasserMng_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 80D45738 */ void execute();
|
||||
/* 80D4597C */ void getPasserParam();
|
||||
/* 80D45E14 */ void getLuggageParamHigh(u32);
|
||||
/* 80D46768 */ void create();
|
||||
/* 80D45738 */ int execute();
|
||||
/* 80D4597C */ int getPasserParam();
|
||||
/* 80D45E14 */ int getLuggageParamHigh(u32);
|
||||
/* 80D46768 */ int create();
|
||||
/* 80D467C0 */ void create_init();
|
||||
~daPasserMng_c() { delete [] childProcIds; }
|
||||
|
||||
static void* mGroupTbl[4];
|
||||
u8 getDetailLevel() { return subtype; }
|
||||
u8 getPathID() { return fopAcM_GetParam(this); }
|
||||
u8 getIntervalTime() { return fopAcM_GetParam(this) >> 24; }
|
||||
int getStartTime() { return (fopAcM_GetParam(this) >> 8) & 0xff; }
|
||||
u8 getEndTime() { return (fopAcM_GetParam(this) >> 16) & 0xff; }
|
||||
u8 getMaxNum() { return shape_angle.x; }
|
||||
u8 getGroupNo() { return (shape_angle.x >> 8) & 0xff; }
|
||||
|
||||
int getTimeHour() {
|
||||
if (dKy_darkworld_check()) {
|
||||
return dKy_getDarktime_hour();
|
||||
}
|
||||
return dKy_getdaytime_hour();
|
||||
}
|
||||
|
||||
int getTimeMinute() {
|
||||
if (dKy_darkworld_check()) {
|
||||
return dKy_getDarktime_minute();
|
||||
}
|
||||
return dKy_getdaytime_minute();
|
||||
}
|
||||
|
||||
int getTime() {
|
||||
return getTimeHour() * 60 + getTimeMinute();
|
||||
}
|
||||
|
||||
int getDayOfWeek() {
|
||||
if (dKy_darkworld_check()) {
|
||||
return dKy_getDarktime_week();
|
||||
}
|
||||
return dKy_get_dayofweek();
|
||||
}
|
||||
|
||||
int getChildNum() {
|
||||
int childNum = 0;
|
||||
fopAc_ac_c* pActor = NULL;
|
||||
for (int i = 0; i < getMaxNum(); i++) {
|
||||
fopAcM_SearchByID(childProcIds[i], &pActor);
|
||||
if (pActor != NULL) {
|
||||
childNum++;
|
||||
}
|
||||
}
|
||||
return childNum;
|
||||
}
|
||||
|
||||
bool checkOverlapping(int param_1, int param_2) {
|
||||
int iVar1;
|
||||
if ((u32)param_2 <= 6) {
|
||||
iVar1 = (u8)param_2 - 1;
|
||||
} else {
|
||||
iVar1 = 6;
|
||||
}
|
||||
for (int i = 0; i < iVar1; i++) {
|
||||
if (field_0x58a[i] == param_1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
int getLuggageParamLow(u32 param_1) {
|
||||
int paramLow;
|
||||
|
||||
paramLow = 0;
|
||||
switch (param_1) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (cLib_getRndValue(0, 2) != 0) {
|
||||
paramLow = 2;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case 8:
|
||||
case 9:
|
||||
case 10:
|
||||
case 15:
|
||||
switch(cLib_getRndValue(0, 3)) {
|
||||
case 0:
|
||||
paramLow = 0;
|
||||
break;
|
||||
case 1:
|
||||
paramLow = 1;
|
||||
break;
|
||||
case 2:
|
||||
paramLow = 4;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case 11:
|
||||
switch(cLib_getRndValue(0, 2)) {
|
||||
case 0:
|
||||
paramLow = 0;
|
||||
break;
|
||||
case 1:
|
||||
paramLow = 4;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
case 12:
|
||||
case 13:
|
||||
switch(cLib_getRndValue(0, 3)) {
|
||||
case 0:
|
||||
paramLow = 0;
|
||||
break;
|
||||
case 1:
|
||||
paramLow = 1;
|
||||
break;
|
||||
case 2:
|
||||
paramLow = 4;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
case 14:
|
||||
switch (cLib_getRndValue(0, 2)) {
|
||||
case 0:
|
||||
paramLow = 0;
|
||||
break;
|
||||
case 1:
|
||||
paramLow = 1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
switch (cLib_getRndValue(0, 2)) {
|
||||
case 0:
|
||||
paramLow = 0;
|
||||
break;
|
||||
case 1:
|
||||
paramLow = 4;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x10:
|
||||
case 0x17:
|
||||
switch(cLib_getRndValue(0, 3)) {
|
||||
case 0:
|
||||
paramLow = 0;
|
||||
break;
|
||||
case 1:
|
||||
paramLow = 8;
|
||||
break;
|
||||
case 2:
|
||||
paramLow = 5;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x11:
|
||||
case 0x18:
|
||||
switch(cLib_getRndValue(0, 3)) {
|
||||
case 0:
|
||||
paramLow = 0;
|
||||
break;
|
||||
case 1:
|
||||
paramLow = 8;
|
||||
break;
|
||||
case 2:
|
||||
paramLow = 5;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x12:
|
||||
case 0x19:
|
||||
switch(cLib_getRndValue(0, 4)) {
|
||||
case 0:
|
||||
paramLow = 0;
|
||||
break;
|
||||
case 1:
|
||||
paramLow = 8;
|
||||
break;
|
||||
case 2:
|
||||
paramLow = 5;
|
||||
break;
|
||||
case 3:
|
||||
paramLow = 3;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x13:
|
||||
case 0x1a:
|
||||
switch (cLib_getRndValue(0, 2)) {
|
||||
case 0:
|
||||
paramLow = 0;
|
||||
break;
|
||||
case 1:
|
||||
paramLow = 5;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x14:
|
||||
case 0x1b:
|
||||
switch (cLib_getRndValue(0, 2)) {
|
||||
case 0:
|
||||
paramLow = 0;
|
||||
break;
|
||||
case 1:
|
||||
paramLow = 5;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x15:
|
||||
case 0x1c:
|
||||
switch (cLib_getRndValue(0, 2)) {
|
||||
case 0:
|
||||
paramLow = 0;
|
||||
break;
|
||||
case 1:
|
||||
paramLow = 5;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x16:
|
||||
case 0x1d:
|
||||
switch(cLib_getRndValue(0, 3)) {
|
||||
case 0:
|
||||
paramLow = 0;
|
||||
break;
|
||||
case 1:
|
||||
paramLow = 5;
|
||||
break;
|
||||
case 2:
|
||||
paramLow = 3;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
OS_REPORT("%s: Line.%d arg=%d\n", "d_a_passer_mng.cpp", 1049, param_1);
|
||||
JUT_PANIC(1050, 0);
|
||||
break;
|
||||
}
|
||||
return paramLow << 8;
|
||||
}
|
||||
|
||||
struct Group {
|
||||
u8 field_0x00;
|
||||
int field_0x04[0];
|
||||
};
|
||||
|
||||
static Group* mGroupTbl[4];
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x598 - 0x568];
|
||||
};
|
||||
/* 0x568 */ fpc_ProcID* childProcIds;
|
||||
/* 0x56C */ dPath* mPath;
|
||||
/* 0x570 */ int startTime;
|
||||
/* 0x574 */ int endTime;
|
||||
/* 0x578 */ int intervalTime;
|
||||
/* 0x57C */ int mTime;
|
||||
/* 0x580 */ int dayOfWeek;
|
||||
/* 0x584 */ int currentChildIndex;
|
||||
/* 0x588 */ s16 npcId;
|
||||
/* 0x58A */ s16 field_0x58a[5];
|
||||
/* 0x594 */ s16 field_0x594;
|
||||
/* 0x596 */ u8 field_0x596;
|
||||
/* 0x597 */ u8 field_0x597;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daPasserMng_c) == 0x598);
|
||||
|
||||
|
||||
@@ -563,6 +563,7 @@ int dKy_getdaytime_minute();
|
||||
int dKy_get_dayofweek();
|
||||
int dKy_getDarktime_minute();
|
||||
int dKy_getDarktime_hour();
|
||||
u8 dKy_getDarktime_week();
|
||||
void dKy_Sound_init();
|
||||
void dKy_setLight_nowroom(char room_no);
|
||||
void dKy_setLight_nowroom_actor(dKy_tevstr_c* tevstr_p);
|
||||
|
||||
Reference in New Issue
Block a user