More debug fixes for 99% TUs (#3122)

* d_a_e_hp debug code 100%

* d_a_npc_chin debug improvements

* d_a_npc_du debug code 100%

* d_a_npc_cdn3 debug code 100%

* d_a_e_rdy GCN symbol fixes

* d_a_kago debug code 100%

* d_a_e_oc debug code 100%

* d_a_e_yr debug code almost matching

* d_a_e_bg debug code 100%

* d_a_ykgr debug code 100%

* d_a_tag_hjump debug data fixes

* d_a_tag_attack_item debug data fixes

* d_a_e_df debug code 100%

* d_a_e_sh debug code 100%

* d_a_L7op_demo_dr debug code 100%

* d_a_L7low_dr debug code 100%

* d_a_e_sm2 debug code 100%

* d_a_movie_player debug code 100%

* d_a_e_st debug code 100%

* d_a_npc_aru debug code 100%

* d_a_e_yg debug code 100%

* d_a_door_spiral debug code 100%

* d_a_bg debug code 100% (still has .data issues)

* d_a_e_dn debug code 100%

* d_a_tag_attention debug code 100%

* d_a_e_bd debug code 100%

* d_a_tag_camera debug .rodata fix

* d_a_obj_movebox debug code 100% (array dtors are mismapped)

* d_a_mg_rod debug improvements

* d_a_e_rd debug symbol fixes
This commit is contained in:
Max Roncace
2026-03-11 06:07:19 -04:00
committed by GitHub
parent 0b0fdd1f60
commit 8a333fc7c9
75 changed files with 1673 additions and 1225 deletions
+307 -292
View File
@@ -368,231 +368,80 @@ void daNpcCdn3_c::initEscape() {
dComIfGs_onSaveDunSwitch(0x3c);
}
daNpcCdn3_c::seqFunc* daNpcCdn3_c::m_funcTbl[44] = {
m_seq00_funcTbl, m_seq01_funcTbl,
m_seq02_funcTbl, m_seq03_funcTbl,
m_seq04_funcTbl, m_seq05_funcTbl,
m_seq06_funcTbl, m_seq07_funcTbl,
m_seq08_funcTbl, m_seq09_funcTbl,
m_seq10_funcTbl, m_seq11_funcTbl,
m_seq12_funcTbl, m_seq13_funcTbl,
m_seq14_funcTbl, m_seq15_funcTbl,
m_seq16_funcTbl, m_seq17_funcTbl,
m_seq18_funcTbl, m_seq19_funcTbl,
m_seq20_funcTbl, m_seq21_funcTbl,
m_seq22_funcTbl, m_seq23_funcTbl,
m_seq24_funcTbl, m_seq25_funcTbl,
m_seq26_funcTbl, m_seq27_funcTbl,
m_seq28_funcTbl, m_seq29_funcTbl,
m_seq30_funcTbl, m_seq31_funcTbl,
m_seq32_funcTbl, m_seq33_funcTbl,
m_seq34_funcTbl, m_seq35_funcTbl,
m_seq36_funcTbl, m_seq37_funcTbl,
m_seq38_funcTbl, m_seq39_funcTbl,
m_seq40_funcTbl, m_seq41_funcTbl,
m_seq42_funcTbl, m_seq43_funcTbl,
};
inline int daNpcCdn3_c::create() {
fopAcM_ct(this, daNpcCdn3_c);
mIsDarkWorld = dKy_darkworld_check();
m_type = getType();
mObjNum = getObjNum();
m_seqNum = getSeqNum();
mFlowNodeNum = getFlowNodeNum();
if (m_seqNum < 0 || 44 <= m_seqNum) {
// "Castle town townspeople map tool setting error
// Argument 1 motion sequence = %d is abnormal"
OSReport_Error("城下町の町人 マップツール設定値異常 引数1モーションシーケンス=%dが異常です。\n", m_seqNum);
JUT_ASSERT(175, FALSE);
}
int rv = loadResrc(m_type, mObjNum);
if (rv == cPhs_COMPLEATE_e) {
int heapSize = 0x2890;
#if DEBUG
heapSize |= fopAcM::HeapSkipMargin;
#else
heapSize |= 0x80000000;
#endif
if (fopAcM_entrySolidHeap(this, createHeapCallBack, heapSize) == 0) {
// "Actor creation failed!"
OS_REPORT("アクター生成失敗しました!\n");
return cPhs_ERROR_e;
}
create_init();
}
return rv;
}
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq00_funcTbl[2] = {&daNpcCdn3_c::walka, NULL};
inline void daNpcCdn3_c::create_init() {
#if DEBUG
// "NPC(C class,D class)HighPoly"
l_Cd2_HIO.entryHIO("NPC(C級,D級)HighPoly");
#endif
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq01_funcTbl[2] = {&daNpcCdn3_c::runa, NULL};
gravity = -3.0f;
initTimeSchedule();
fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx());
fopAcM_setCullSizeBox(this, -40.0f, -10.0f, -40.0f, 40.0f, 190.0f, 40.0f);
mAcchCir.SetWall(Cd2_HIO_chkWallH(m_type), Cd2_HIO_chkWallR(m_type));
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir,
fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
mAcch.SetRoofNone();
mAcch.SetWaterNone();
mAcch.CrrPos(dComIfG_Bgsp());
setEnvTevCol();
setRoomNo();
initCollision();
if (strcmp(dComIfGp_getStartStageName(), "F_SP116") == 0 &&
dComIfGp_getStartStageRoomNo() == 3 && getType() == 7)
{
attention_info.distances[fopAc_attn_SPEAK_e] = 0xda;
attention_info.distances[fopAc_attn_TALK_e] = 0xda;
} else {
attention_info.distances[fopAc_attn_SPEAK_e] = 0xd9;
attention_info.distances[fopAc_attn_TALK_e] = 0xd9;
}
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq02_funcTbl[2] = {&daNpcCdn3_c::waita, NULL};
if (isInShop()) {
fopAcM_OnStatus(this, fopAcStts_UNK_0x4000_e);
}
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq03_funcTbl[2] = {&daNpcCdn3_c::talka, NULL};
if (m_path.setPath(getPathID(), fopAcM_GetRoomNo(this), 1, &current.pos, false)) {
setAction(MODE_PATH);
} else {
setAction(MODE_WAIT);
}
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq04_funcTbl[2] = {&daNpcCdn3_c::runb, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq05_funcTbl[4] = {&daNpcCdn3_c::turnr, &daNpcCdn3_c::waita,
&daNpcCdn3_c::talka, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq06_funcTbl[4] = {&daNpcCdn3_c::turnl, &daNpcCdn3_c::waita,
&daNpcCdn3_c::talka, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq07_funcTbl[2] = {&daNpcCdn3_c::waitwall, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq08_funcTbl[7] = {
&daNpcCdn3_c::talkwall,
&daNpcCdn3_c::waitwall,
&daNpcCdn3_c::talkbwall,
&daNpcCdn3_c::waitwall,
&daNpcCdn3_c::talkwall,
&daNpcCdn3_c::talkbwall,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq09_funcTbl[2] = {&daNpcCdn3_c::talkb, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq10_funcTbl[2] = {&daNpcCdn3_c::talkc, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq11_funcTbl[6] = {&daNpcCdn3_c::talka, &daNpcCdn3_c::waita,
&daNpcCdn3_c::talkb, &daNpcCdn3_c::waitb,
&daNpcCdn3_c::talkc, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq12_funcTbl[2] = {&daNpcCdn3_c::waitb, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq13_funcTbl[6] = {
&daNpcCdn3_c::browsea, &daNpcCdn3_c::browseb, &daNpcCdn3_c::talka,
&daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq14_funcTbl[2] = {&daNpcCdn3_c::walkb, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq15_funcTbl[2] = {&daNpcCdn3_c::sitwaita, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq16_funcTbl[7] = {
&daNpcCdn3_c::sittalka,
&daNpcCdn3_c::sitwaita,
&daNpcCdn3_c::sittalkab,
&daNpcCdn3_c::sitwaita,
&daNpcCdn3_c::sittalka,
&daNpcCdn3_c::sittalkab,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq17_funcTbl[2] = {
&daNpcCdn3_c::playm,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq18_funcTbl[2] = {&daNpcCdn3_c::sitwaitb, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq19_funcTbl[7] = {
&daNpcCdn3_c::sittalkb,
&daNpcCdn3_c::sitwaitb,
&daNpcCdn3_c::sittalkbb,
&daNpcCdn3_c::sitwaitb,
&daNpcCdn3_c::sittalkb,
&daNpcCdn3_c::sittalkbb,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq20_funcTbl[2] = {&daNpcCdn3_c::looka, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq21_funcTbl[2] = {&daNpcCdn3_c::lookb, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq22_funcTbl[4] = {&daNpcCdn3_c::looka, &daNpcCdn3_c::lookb,
&daNpcCdn3_c::waita, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq23_funcTbl[7] = {
&daNpcCdn3_c::talka,
&daNpcCdn3_c::waita,
&daNpcCdn3_c::talkb,
&daNpcCdn3_c::waita,
&daNpcCdn3_c::talka,
&daNpcCdn3_c::talkb,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq24_funcTbl[5] = {
&daNpcCdn3_c::talkb, &daNpcCdn3_c::talka, &daNpcCdn3_c::talkc, &daNpcCdn3_c::waita, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq25_funcTbl[7] = {
&daNpcCdn3_c::browsea,
&daNpcCdn3_c::browseb,
&daNpcCdn3_c::talka,
&daNpcCdn3_c::talkb,
&daNpcCdn3_c::talkc,
&daNpcCdn3_c::waita,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq26_funcTbl[3] = {
&daNpcCdn3_c::browsea,
&daNpcCdn3_c::browseb,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq27_funcTbl[2] = {&daNpcCdn3_c::dance, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq28_funcTbl[3] = {
&daNpcCdn3_c::ladytalka,
&daNpcCdn3_c::normtalka,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq29_funcTbl[3] = {
&daNpcCdn3_c::ladytalkb,
&daNpcCdn3_c::normtalkb,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq30_funcTbl[6] = {
&daNpcCdn3_c::talka, &daNpcCdn3_c::ladytalka, &daNpcCdn3_c::waita,
&daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq31_funcTbl[6] = {
&daNpcCdn3_c::waita, &daNpcCdn3_c::ladytalkb, &daNpcCdn3_c::talka,
&daNpcCdn3_c::waita, &daNpcCdn3_c::talkb, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq32_funcTbl[7] = {
&daNpcCdn3_c::talka,
&daNpcCdn3_c::ladytalka,
&daNpcCdn3_c::waita,
&daNpcCdn3_c::talkb,
&daNpcCdn3_c::waita,
&daNpcCdn3_c::normtalka,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq33_funcTbl[7] = {
&daNpcCdn3_c::waita,
&daNpcCdn3_c::ladytalkb,
&daNpcCdn3_c::talka,
&daNpcCdn3_c::waita,
&daNpcCdn3_c::talkb,
&daNpcCdn3_c::normtalkb,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq34_funcTbl[9] = {
&daNpcCdn3_c::talka, &daNpcCdn3_c::ladytalka, &daNpcCdn3_c::ladytalkb,
&daNpcCdn3_c::waita, &daNpcCdn3_c::talkb, &daNpcCdn3_c::waita,
&daNpcCdn3_c::normtalka, &daNpcCdn3_c::normtalkb, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq35_funcTbl[2] = {
&daNpcCdn3_c::sellme,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq36_funcTbl[4] = {
&daNpcCdn3_c::ladytalkb,
&daNpcCdn3_c::talka,
&daNpcCdn3_c::waita,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq37_funcTbl[2] = {
&daNpcCdn3_c::sing, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq38_funcTbl[2] = {
&daNpcCdn3_c::sittalka, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq39_funcTbl[2] = {
&daNpcCdn3_c::sittalkab, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq40_funcTbl[3] = {
&daNpcCdn3_c::sittalka, &daNpcCdn3_c::sittalkab, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq41_funcTbl[2] = {
&daNpcCdn3_c::sittalkb, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq42_funcTbl[2] = {
&daNpcCdn3_c::sittalkbb, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq43_funcTbl[3] = {
&daNpcCdn3_c::sittalkb, &daNpcCdn3_c::sittalkbb, NULL,
};
mpMorf->setMorf(0.0f);
field_0xb64 = current.pos.y = mAcch.GetGroundH();
setMtx();
}
void daNpcCdn3_c::executeEscape() {
if (field_0xb68 == 0) {
@@ -1005,11 +854,19 @@ void daNpcCdn3_c::setSchedule(daTagSchedule_c* param_1) {
}
inline bool daNpcCdn3_c::isInShop() {
u8 rv = FALSE;
if (strcmp(dComIfGp_getStartStageName(), "R_SP160") == 0 && dComIfG_play_c::getLayerNo(0) <= 1) {
rv = TRUE;
return (bool)(strcmp(dComIfGp_getStartStageName(), "R_SP160") == 0 && dComIfG_play_c::getLayerNo(0) <= 1);
}
inline bool daNpcCdn3_c::isOrchestra() {
if (strcmp(dComIfGp_getStartStageName(), "F_SP116") != 0) {
return false;
} else if (m_seqNum == 17 && (getType() == 4 || getType() == 5 || getType() == 6 || getType() == 16)) {
return true;
} else if (m_seqNum == 37 && getType() == 7) {
return true;
} else {
return false;
}
return rv;
}
bool daNpcCdn3_c::isChairStyle() {
@@ -1456,74 +1313,6 @@ int daNpcCdn3_c::sing(void* param_0) {
return field_0xaa0 == 0;
}
int daNpcCdn3_c::create() {
fopAcM_ct(this, daNpcCdn3_c);
mIsDarkWorld = dKy_darkworld_check();
m_type = getType();
mObjNum = getObjNum();
m_seqNum = getSeqNum();
mFlowNodeNum = getFlowNodeNum();
if (m_seqNum < 0 || 44 <= m_seqNum) {
OSReport_Error("城下町の町人 マップツール設定値異常 引数1モーションシーケンス=%dが異常です。\n", m_seqNum);
JUT_ASSERT(175, FALSE);
}
int rv = loadResrc(m_type, mObjNum);
if (rv == cPhs_COMPLEATE_e) {
int msb = 0x80000000;
int heapSize = 0x2890;
heapSize |= msb;
if (fopAcM_entrySolidHeap(this, createHeapCallBack, heapSize) == 0) {
OS_REPORT("アクター生成失敗しました!\n");
return cPhs_ERROR_e;
}
create_init();
}
return rv;
}
void daNpcCdn3_c::create_init() {
#if DEBUG
l_Cd2_HIO.entryHIO("NPC(C級,D級)HighPoly");
#endif
gravity = -3.0f;
initTimeSchedule();
fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx());
fopAcM_setCullSizeBox(this, -40.0f, -10.0f, -40.0f, 40.0f, 190.0f, 40.0f);
mAcchCir.SetWall(Cd2_HIO_chkWallH(m_type), Cd2_HIO_chkWallR(m_type));
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir,
fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
mAcch.SetRoofNone();
mAcch.SetWaterNone();
mAcch.CrrPos(dComIfG_Bgsp());
setEnvTevCol();
setRoomNo();
initCollision();
if (strcmp(dComIfGp_getStartStageName(), "F_SP116") == 0 &&
dComIfGp_getStartStageRoomNo() == 3 && getType() == 7)
{
attention_info.distances[fopAc_attn_SPEAK_e] = 0xda;
attention_info.distances[fopAc_attn_TALK_e] = 0xda;
} else {
attention_info.distances[fopAc_attn_SPEAK_e] = 0xd9;
attention_info.distances[fopAc_attn_TALK_e] = 0xd9;
}
if (isInShop()) {
fopAcM_OnStatus(this, fopAcStts_UNK_0x4000_e);
}
if (m_path.setPath(getPathID(), fopAcM_GetRoomNo(this), 1, &current.pos, false)) {
setAction(MODE_PATH);
} else {
setAction(MODE_WAIT);
}
mpMorf->setMorf(0.0f);
field_0xb64 = current.pos.y = mAcch.GetGroundH();
setMtx();
}
void daNpcCdn3_c::setMtx() {
mDoMtx_stack_c::transS(current.pos.x, field_0xb64, current.pos.z);
mDoMtx_stack_c::YrotM(shape_angle.y);
@@ -1711,6 +1500,232 @@ inline int daNpcCdn3_c::draw() {
return 1;
}
daNpcCdn3_c::seqFunc* daNpcCdn3_c::m_funcTbl[44] = {
m_seq00_funcTbl, m_seq01_funcTbl,
m_seq02_funcTbl, m_seq03_funcTbl,
m_seq04_funcTbl, m_seq05_funcTbl,
m_seq06_funcTbl, m_seq07_funcTbl,
m_seq08_funcTbl, m_seq09_funcTbl,
m_seq10_funcTbl, m_seq11_funcTbl,
m_seq12_funcTbl, m_seq13_funcTbl,
m_seq14_funcTbl, m_seq15_funcTbl,
m_seq16_funcTbl, m_seq17_funcTbl,
m_seq18_funcTbl, m_seq19_funcTbl,
m_seq20_funcTbl, m_seq21_funcTbl,
m_seq22_funcTbl, m_seq23_funcTbl,
m_seq24_funcTbl, m_seq25_funcTbl,
m_seq26_funcTbl, m_seq27_funcTbl,
m_seq28_funcTbl, m_seq29_funcTbl,
m_seq30_funcTbl, m_seq31_funcTbl,
m_seq32_funcTbl, m_seq33_funcTbl,
m_seq34_funcTbl, m_seq35_funcTbl,
m_seq36_funcTbl, m_seq37_funcTbl,
m_seq38_funcTbl, m_seq39_funcTbl,
m_seq40_funcTbl, m_seq41_funcTbl,
m_seq42_funcTbl, m_seq43_funcTbl,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq00_funcTbl[2] = {&daNpcCdn3_c::walka, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq01_funcTbl[2] = {&daNpcCdn3_c::runa, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq02_funcTbl[2] = {&daNpcCdn3_c::waita, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq03_funcTbl[2] = {&daNpcCdn3_c::talka, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq04_funcTbl[2] = {&daNpcCdn3_c::runb, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq05_funcTbl[4] = {&daNpcCdn3_c::turnr, &daNpcCdn3_c::waita,
&daNpcCdn3_c::talka, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq06_funcTbl[4] = {&daNpcCdn3_c::turnl, &daNpcCdn3_c::waita,
&daNpcCdn3_c::talka, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq07_funcTbl[2] = {&daNpcCdn3_c::waitwall, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq08_funcTbl[7] = {
&daNpcCdn3_c::talkwall,
&daNpcCdn3_c::waitwall,
&daNpcCdn3_c::talkbwall,
&daNpcCdn3_c::waitwall,
&daNpcCdn3_c::talkwall,
&daNpcCdn3_c::talkbwall,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq09_funcTbl[2] = {&daNpcCdn3_c::talkb, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq10_funcTbl[2] = {&daNpcCdn3_c::talkc, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq11_funcTbl[6] = {&daNpcCdn3_c::talka, &daNpcCdn3_c::waita,
&daNpcCdn3_c::talkb, &daNpcCdn3_c::waitb,
&daNpcCdn3_c::talkc, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq12_funcTbl[2] = {&daNpcCdn3_c::waitb, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq13_funcTbl[6] = {
&daNpcCdn3_c::browsea, &daNpcCdn3_c::browseb, &daNpcCdn3_c::talka,
&daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq14_funcTbl[2] = {&daNpcCdn3_c::walkb, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq15_funcTbl[2] = {&daNpcCdn3_c::sitwaita, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq16_funcTbl[7] = {
&daNpcCdn3_c::sittalka,
&daNpcCdn3_c::sitwaita,
&daNpcCdn3_c::sittalkab,
&daNpcCdn3_c::sitwaita,
&daNpcCdn3_c::sittalka,
&daNpcCdn3_c::sittalkab,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq17_funcTbl[2] = {
&daNpcCdn3_c::playm,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq18_funcTbl[2] = {&daNpcCdn3_c::sitwaitb, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq19_funcTbl[7] = {
&daNpcCdn3_c::sittalkb,
&daNpcCdn3_c::sitwaitb,
&daNpcCdn3_c::sittalkbb,
&daNpcCdn3_c::sitwaitb,
&daNpcCdn3_c::sittalkb,
&daNpcCdn3_c::sittalkbb,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq20_funcTbl[2] = {&daNpcCdn3_c::looka, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq21_funcTbl[2] = {&daNpcCdn3_c::lookb, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq22_funcTbl[4] = {&daNpcCdn3_c::looka, &daNpcCdn3_c::lookb,
&daNpcCdn3_c::waita, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq23_funcTbl[7] = {
&daNpcCdn3_c::talka,
&daNpcCdn3_c::waita,
&daNpcCdn3_c::talkb,
&daNpcCdn3_c::waita,
&daNpcCdn3_c::talka,
&daNpcCdn3_c::talkb,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq24_funcTbl[5] = {
&daNpcCdn3_c::talkb, &daNpcCdn3_c::talka, &daNpcCdn3_c::talkc, &daNpcCdn3_c::waita, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq25_funcTbl[7] = {
&daNpcCdn3_c::browsea,
&daNpcCdn3_c::browseb,
&daNpcCdn3_c::talka,
&daNpcCdn3_c::talkb,
&daNpcCdn3_c::talkc,
&daNpcCdn3_c::waita,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq26_funcTbl[3] = {
&daNpcCdn3_c::browsea,
&daNpcCdn3_c::browseb,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq27_funcTbl[2] = {&daNpcCdn3_c::dance, NULL};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq28_funcTbl[3] = {
&daNpcCdn3_c::ladytalka,
&daNpcCdn3_c::normtalka,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq29_funcTbl[3] = {
&daNpcCdn3_c::ladytalkb,
&daNpcCdn3_c::normtalkb,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq30_funcTbl[6] = {
&daNpcCdn3_c::talka, &daNpcCdn3_c::ladytalka, &daNpcCdn3_c::waita,
&daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq31_funcTbl[6] = {
&daNpcCdn3_c::waita, &daNpcCdn3_c::ladytalkb, &daNpcCdn3_c::talka,
&daNpcCdn3_c::waita, &daNpcCdn3_c::talkb, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq32_funcTbl[7] = {
&daNpcCdn3_c::talka,
&daNpcCdn3_c::ladytalka,
&daNpcCdn3_c::waita,
&daNpcCdn3_c::talkb,
&daNpcCdn3_c::waita,
&daNpcCdn3_c::normtalka,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq33_funcTbl[7] = {
&daNpcCdn3_c::waita,
&daNpcCdn3_c::ladytalkb,
&daNpcCdn3_c::talka,
&daNpcCdn3_c::waita,
&daNpcCdn3_c::talkb,
&daNpcCdn3_c::normtalkb,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq34_funcTbl[9] = {
&daNpcCdn3_c::talka, &daNpcCdn3_c::ladytalka, &daNpcCdn3_c::ladytalkb,
&daNpcCdn3_c::waita, &daNpcCdn3_c::talkb, &daNpcCdn3_c::waita,
&daNpcCdn3_c::normtalka, &daNpcCdn3_c::normtalkb, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq35_funcTbl[2] = {
&daNpcCdn3_c::sellme,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq36_funcTbl[4] = {
&daNpcCdn3_c::ladytalkb,
&daNpcCdn3_c::talka,
&daNpcCdn3_c::waita,
NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq37_funcTbl[2] = {
&daNpcCdn3_c::sing, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq38_funcTbl[2] = {
&daNpcCdn3_c::sittalka, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq39_funcTbl[2] = {
&daNpcCdn3_c::sittalkab, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq40_funcTbl[3] = {
&daNpcCdn3_c::sittalka, &daNpcCdn3_c::sittalkab, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq41_funcTbl[2] = {
&daNpcCdn3_c::sittalkb, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq42_funcTbl[2] = {
&daNpcCdn3_c::sittalkbb, NULL,
};
daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq43_funcTbl[3] = {
&daNpcCdn3_c::sittalkb, &daNpcCdn3_c::sittalkbb, NULL,
};
static int daNpcCdn3_Create(void* i_this) {
return static_cast<daNpcCdn3_c*>(i_this)->create();
}