mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-08 21:54:50 -04:00
Add save stage table, stage type, and event bit enums
This commit is contained in:
@@ -9,7 +9,7 @@ class daAgb_c;
|
||||
struct agb_mail_struct {
|
||||
/* 0x00 */ u16 msgID;
|
||||
/* 0x02 */ u8 swToSet;
|
||||
/* 0x03 */ u8 stagInfo;
|
||||
/* 0x03 */ u8 stageSaveTbl;
|
||||
/* 0x04 */ u8 roomNo;
|
||||
/* 0x05 */ u8 reactType;
|
||||
/* 0x06 */ u8 swToCheck;
|
||||
|
||||
@@ -90,7 +90,7 @@ private:
|
||||
/* 0x8F0 */ u32 field_0x8F0;
|
||||
/* 0x8F4 */ u8 field_0x8F4;
|
||||
/* 0x8F5 */ u8 field_0x8F5;
|
||||
/* 0x8F6 */ u8 field_0x8F6;
|
||||
/* 0x8F6 */ u8 mPreItemNo;
|
||||
/* 0x8F7 */ s8 field_0x8F7;
|
||||
};
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "d/d_drawlist.h"
|
||||
#include "d/d_event.h"
|
||||
#include "d/d_event_manager.h"
|
||||
#include "d/d_event_bit.h"
|
||||
#include "d/d_map.h"
|
||||
#include "d/d_particle.h"
|
||||
#include "d/d_resorce.h"
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
#ifndef D_EVENT_BIT_H
|
||||
#define D_EVENT_BIT_H
|
||||
|
||||
enum dEventBit_e {
|
||||
dEvtBit_SHIP_RIDDEN_e = 0x2A08,
|
||||
dEvtBit_BARRIER_BREAK_e = 0x2C02,
|
||||
dEvtBit_LITHOGRAPH_1_e = 0x3508,
|
||||
dEvtBit_LITHOGRAPH_2_e = 0x3504,
|
||||
dEvtBit_LITHOGRAPH_3_e = 0x3502,
|
||||
dEvtBit_LITHOGRAPH_4_e = 0x3501,
|
||||
dEvtBit_LITHOGRAPH_5_e = 0x3680,
|
||||
dEvtBit_LITHOGRAPH_6_e = 0x3640,
|
||||
dEvtBit_LITHOGRAPH_7_e = 0x3620,
|
||||
dEvtBit_LITHOGRAPH_8_e = 0x3610,
|
||||
dEvtBit_LITHOGRAPH_9_e = 0x3608,
|
||||
dEvtBit_LITHOGRAPH_10_e = 0x3604,
|
||||
};
|
||||
|
||||
enum dEventReg_e {
|
||||
dEvtReg_NOTE_TO_MOM_e = 0xAC03,
|
||||
};
|
||||
|
||||
#endif /* D_EVENT_BIT_H */
|
||||
+28
-3
@@ -477,7 +477,6 @@ public:
|
||||
/* 0x3 */ STAGE_BOSS_ENEMY,
|
||||
/* 0x4 */ STAGE_LIFE,
|
||||
/* 0x5 */ STAGE_BOSS_DEMO,
|
||||
/* 0x7 */ STAGE_BOSS_ENEMY_2 = 7
|
||||
};
|
||||
|
||||
void init();
|
||||
@@ -492,21 +491,29 @@ public:
|
||||
void onVisitedRoom(int);
|
||||
BOOL isVisitedRoom(int);
|
||||
void onDungeonItem(int);
|
||||
void offDungeonItem(int);
|
||||
BOOL isDungeonItem(int);
|
||||
|
||||
u8 getKeyNum() { return mKeyNum; }
|
||||
void setKeyNum(u8 i_keyNum) { mKeyNum = i_keyNum; }
|
||||
void onDungeonItemMap() { onDungeonItem(MAP); }
|
||||
void offDungeonItemMap() { offDungeonItem(MAP); }
|
||||
BOOL isDungeonItemMap() { return isDungeonItem(MAP); }
|
||||
void onDungeonItemCompass() { onDungeonItem(COMPASS); }
|
||||
void offDungeonItemCompass() { offDungeonItem(COMPASS); }
|
||||
BOOL isDungeonItemCompass() { return isDungeonItem(COMPASS); }
|
||||
void onDungeonItemBossKey() { onDungeonItem(BOSS_KEY); }
|
||||
void offDungeonItemBossKey() { offDungeonItem(BOSS_KEY); }
|
||||
BOOL isDungeonItemBossKey() { return isDungeonItem(BOSS_KEY); }
|
||||
void onStageBossEnemy() { onDungeonItem(STAGE_BOSS_ENEMY); }
|
||||
void offStageBossEnemy() { offDungeonItem(STAGE_BOSS_ENEMY); }
|
||||
BOOL isStageBossEnemy() { return isDungeonItem(STAGE_BOSS_ENEMY); }
|
||||
BOOL isStageBossEnemy2() { return isDungeonItem(STAGE_BOSS_ENEMY_2); }
|
||||
void onStageLife() { onDungeonItem(STAGE_LIFE); }
|
||||
void offStageLife() { offDungeonItem(STAGE_LIFE); }
|
||||
BOOL isStageLife() { return isDungeonItem(STAGE_LIFE); }
|
||||
void onStageBossDemo() { onDungeonItem(STAGE_BOSS_DEMO); }
|
||||
void offStageBossDemo() { offDungeonItem(STAGE_BOSS_DEMO); }
|
||||
BOOL isStageBossDemo() { return isDungeonItem(STAGE_BOSS_DEMO); }
|
||||
|
||||
/* 0x00 */ u32 mTbox;
|
||||
/* 0x04 */ u32 mSwitch[4];
|
||||
@@ -696,7 +703,25 @@ public:
|
||||
dSv_memory_c& getSave(int i_stageNo) { return mMemory[i_stageNo]; }
|
||||
void putSave(int i_stageNo, dSv_memory_c i_mem) { mMemory[i_stageNo] = i_mem; }
|
||||
|
||||
const static int STAGE_MAX = 16;
|
||||
enum SaveStageTbl {
|
||||
/* 0x00 */ STAGE_SEA,
|
||||
/* 0x01 */ STAGE_SEA2,
|
||||
/* 0x02 */ STAGE_FF,
|
||||
/* 0x03 */ STAGE_DRC,
|
||||
/* 0x04 */ STAGE_FW,
|
||||
/* 0x05 */ STAGE_TOTG,
|
||||
/* 0x06 */ STAGE_ET,
|
||||
/* 0x07 */ STAGE_WT,
|
||||
/* 0x08 */ STAGE_GT,
|
||||
/* 0x09 */ STAGE_HYRULE,
|
||||
/* 0x0A */ STAGE_SHIP,
|
||||
/* 0x0B */ STAGE_MISC, // Mostly interior rooms but not all
|
||||
/* 0x0C */ STAGE_SUBDUNGEON, // Name based on the debug map select entry サブダンジョン
|
||||
/* 0x0D */ STAGE_SUBDUNGEON_NEW, // Name based on the debug map select entry サブダン新規追加
|
||||
/* 0x0E */ STAGE_BLUE_CHU_JELLY,
|
||||
/* 0x0F */ STAGE_TEST,
|
||||
/* 0x10 */ STAGE_MAX,
|
||||
};
|
||||
|
||||
/* 0x000 */ dSv_player_c mPlayer;
|
||||
/* 0x380 */ dSv_memory_c mMemory[STAGE_MAX];
|
||||
|
||||
+13
-1
@@ -9,10 +9,22 @@
|
||||
#include "global.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class JKRExpHeap;
|
||||
|
||||
void dStage_SetErrorRoom();
|
||||
void dStage_SetErrorStage();
|
||||
|
||||
class JKRExpHeap;
|
||||
enum StageType {
|
||||
/* 0x00 */ dStageType_OUTDOORS_e,
|
||||
/* 0x01 */ dStageType_DUNGEON_e,
|
||||
/* 0x02 */ dStageType_MISC_e, // Mostly interior rooms but also some exceptions
|
||||
/* 0x03 */ dStageType_BOSS_e,
|
||||
/* 0x04 */ dStageType_SUBDUNGEON_e, // Name based on the debug map select entry サブダンジョン
|
||||
/* 0x05 */ dStageType_FF1_e,
|
||||
/* 0x06 */ dStageType_MINIBOSS_e,
|
||||
/* 0x07 */ dStageType_SEA_e,
|
||||
/* 0x08 */ dStageType_UNKNOWN_8_e,
|
||||
};
|
||||
|
||||
class stage_vrbox_info_class {
|
||||
public:
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "f_pc/f_pc_searcher.h"
|
||||
#include "m_Do/m_Do_audio.h"
|
||||
#include "d/d_item_data.h"
|
||||
#include "d/d_save.h"
|
||||
|
||||
#define fopAcM_SetupActor(ptr,ClassName) \
|
||||
if (!fopAcM_CheckCondition(ptr, fopAcCnd_INIT_e)) { \
|
||||
@@ -327,7 +328,7 @@ inline BOOL dComIfGs_isSaveSwitch(int i_stageNo, int i_no);
|
||||
inline BOOL fopAcM_isItemForIb(int itemBitNo, u8 itemNo, s8 roomNo) {
|
||||
if (itemNo == BLUE_JELLY) {
|
||||
// Blue Chu Jelly uses itemBitNo as if it was a switch in stageNo 0xE.
|
||||
return dComIfGs_isSaveSwitch(0xE, itemBitNo);
|
||||
return dComIfGs_isSaveSwitch(dSv_save_c::STAGE_BLUE_CHU_JELLY, itemBitNo);
|
||||
} else {
|
||||
return dComIfGs_isItem(itemBitNo, roomNo);
|
||||
}
|
||||
@@ -337,7 +338,7 @@ inline void dComIfGs_onSaveSwitch(int i_stageNo, int i_no);
|
||||
inline void fopAcM_onItemForIb(int itemBitNo, u8 itemNo, s8 roomNo) {
|
||||
if (itemNo == BLUE_JELLY) {
|
||||
// Blue Chu Jelly uses itemBitNo as if it was a switch in stageNo 0xE.
|
||||
dComIfGs_onSaveSwitch(0xE, itemBitNo);
|
||||
dComIfGs_onSaveSwitch(dSv_save_c::STAGE_BLUE_CHU_JELLY, itemBitNo);
|
||||
} else {
|
||||
dComIfGs_onItem(itemBitNo, roomNo);
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ int daAgb_c::uploadInitCheck() {
|
||||
dStage_FileList_dt_c* fili_p =
|
||||
dComIfGp_roomControl_getStatusRoomDt(roomNo)->getFileListInfo();
|
||||
|
||||
if ((dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != 7 && !dMap_c::isEnableDispMap()) ||
|
||||
if ((dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != dStageType_SEA_e && !dMap_c::isEnableDispMap()) ||
|
||||
(fili_p != NULL && dStage_FileList_dt_CheckAgbCom(fili_p)))
|
||||
{
|
||||
l_msgCtrl.init(1);
|
||||
|
||||
@@ -1687,31 +1687,31 @@ BOOL daAgbsw0_c::MoveCheck(s16 param_1) {
|
||||
|
||||
break;
|
||||
case 9:
|
||||
if(dComIfGs_isStageTbox(3, 0xF)) {
|
||||
if(dComIfGs_isStageTbox(dSv_save_c::STAGE_DRC, 0xF)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
break;
|
||||
case 0xA:
|
||||
if(dComIfGs_isStageTbox(4, 0xF)) {
|
||||
if(dComIfGs_isStageTbox(dSv_save_c::STAGE_FW, 0xF)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
break;
|
||||
case 0xB:
|
||||
if(dComIfGs_isStageTbox(5, 0xF)) {
|
||||
if(dComIfGs_isStageTbox(dSv_save_c::STAGE_TOTG, 0xF)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
break;
|
||||
case 0xC:
|
||||
if(dComIfGs_isStageTbox(7, 0xF)) {
|
||||
if(dComIfGs_isStageTbox(dSv_save_c::STAGE_WT, 0xF)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
break;
|
||||
case 0xD:
|
||||
if(dComIfGs_isStageTbox(6, 0xF)) {
|
||||
if(dComIfGs_isStageTbox(dSv_save_c::STAGE_ET, 0xF)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2445,7 +2445,7 @@ void daAgbsw0_c::MailSend(u16 msgID, u8 reactType, u8 toCheck, u8 toSet, u8 sfx)
|
||||
mMail.msgID = msgID;
|
||||
mMail.swToSet = toSet;
|
||||
mMail.swToCheck = toCheck;
|
||||
mMail.stagInfo = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo());
|
||||
mMail.stageSaveTbl = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo());
|
||||
mMail.roomNo = fopAcM_GetHomeRoomNo(this);
|
||||
mMail.reactType = reactType;
|
||||
mMail.sfx = sfx;
|
||||
@@ -2502,7 +2502,7 @@ static BOOL daAgbsw0_Delete(daAgbsw0_c* i_this) {
|
||||
info.msgID = 0xFFFF;
|
||||
info.swToSet = 0xFF;
|
||||
info.swToCheck = 0xFF;
|
||||
info.stagInfo = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo());
|
||||
info.stageSaveTbl = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo());
|
||||
info.roomNo = fopAcM_GetHomeRoomNo(i_this);
|
||||
info.reactType = 0;
|
||||
info.sfx = 0;
|
||||
|
||||
@@ -180,7 +180,7 @@ static void move(dr_class* i_this) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!dComIfGs_isStageBossEnemy(3)) {
|
||||
if (!dComIfGs_isStageBossEnemy(dSv_save_c::STAGE_DRC)) {
|
||||
if ((isIdle && (l_HIO.m0C || dComIfGp_getVibration().CheckQuake())) || i_this->m2C8 != 0) {
|
||||
l_HIO.m0C = false;
|
||||
i_this->m2C8 = 0;
|
||||
|
||||
@@ -36,7 +36,7 @@ bool daMmusic::Act_c::create_heap() {
|
||||
|
||||
/* 000000A4-0000013C .text Macore_is_playing__Q28daMmusic5Act_cFv */
|
||||
BOOL daMmusic::Act_c::Macore_is_playing() {
|
||||
if (dComIfGs_isStageBossEnemy(7) ||
|
||||
if (dComIfGs_isStageBossEnemy(dSv_save_c::STAGE_WT) ||
|
||||
g_dComIfG_gameInfo.save.mSavedata.mEvent.isEventBit(0x2910) ||
|
||||
g_dComIfG_gameInfo.save.mSavedata.mEvent.isEventBit(0x2e02) ||
|
||||
g_dComIfG_gameInfo.save.mSavedata.mEvent.isEventBit(0x1610) ||
|
||||
|
||||
@@ -391,7 +391,9 @@ s32 daNpc_Md_c::create() {
|
||||
setTypeM_DaiB();
|
||||
}
|
||||
} else if (strcmp(dComIfGp_getStartStageName(), "sea") == 0) {
|
||||
if (dComIfGs_isEventBit(0x2E04) || !dComIfGs_isEventBit(0x1820) || !dComIfGs_isStageBossEnemy(3)) {
|
||||
if (dComIfGs_isEventBit(0x2E04) || !dComIfGs_isEventBit(0x1820) ||
|
||||
!dComIfGs_isStageBossEnemy(dSv_save_c::STAGE_DRC))
|
||||
{
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
} else if (strcmp(dComIfGp_getStartStageName(), "Atorizk") == 0) {
|
||||
|
||||
@@ -242,8 +242,7 @@ void daObjBarrier_c::break_start_wait_proc() {
|
||||
case 8:
|
||||
case 9:
|
||||
case 10:
|
||||
// 0x2C02: Destroyed Hyrule Barrier
|
||||
dComIfGs_onEventBit(0x2C02);
|
||||
dComIfGs_onEventBit(dEvtBit_BARRIER_BREAK_e);
|
||||
mEventID = dComIfGp_evmng_getEventIdx("seal", 0xFF);
|
||||
mBarrierProc = PROC_BREAK_ORDER;
|
||||
break;
|
||||
@@ -485,7 +484,7 @@ int daObjBarrier_c::_create() {
|
||||
mMoya = param_get_moya();
|
||||
if (mMoya != 0) {
|
||||
mBarrierActive = true;
|
||||
} else if (dComIfGs_isEventBit(0x2C02) == true) { // 0x2C02: Destroyed Hyrule Barrier
|
||||
} else if (dComIfGs_isEventBit(dEvtBit_BARRIER_BREAK_e) == true) {
|
||||
mBarrierActive = false;
|
||||
} else {
|
||||
mBarrierActive = true;
|
||||
|
||||
@@ -20,8 +20,9 @@
|
||||
extern dScnPly_reg_HIO_c g_regHIO;
|
||||
|
||||
const char daObjTpost_c::m_arc_name[] = "Toripost";
|
||||
|
||||
const daObjTpost_c__letter_data daObjTpost_c::m_letter[] = {
|
||||
{false, 0x1AAF, 0x07, 0xAC03},
|
||||
{false, 0x1AAF, 0x07, dEvtReg_NOTE_TO_MOM_e},
|
||||
{false, 0x0CF9, 0x07, 0xB503},
|
||||
{false, 0x0CFA, 0xC3, 0x7D03},
|
||||
{false, 0x0CFC, 0x04, 0x7B03},
|
||||
@@ -29,12 +30,13 @@ const daObjTpost_c__letter_data daObjTpost_c::m_letter[] = {
|
||||
{false, 0x0CFD, 0x01, 0x7A03},
|
||||
{true, 0x0DB6, 0xCB, 0xB203},
|
||||
{false, 0x1148, 0x04, 0x8B03},
|
||||
{false, 0x1AAF, 0x07, 0xAC03},
|
||||
{false, 0x1AAF, 0x07, dEvtReg_NOTE_TO_MOM_e},
|
||||
{true, 0x0F76, 0x9D, 0xB003},
|
||||
{false, 0x19A6, 0x3F, 0xAE03},
|
||||
{true, 0x0CFB, 0x04, 0x7C03},
|
||||
{true, 0x0F77, 0x9E, 0xAF03}
|
||||
};
|
||||
|
||||
const dCcD_SrcCyl daObjTpost_c::m_cyl_src = {
|
||||
// dCcD_SrcGObjInf
|
||||
{
|
||||
@@ -227,12 +229,12 @@ void daObjTpost_c::cutDispLetterProc(int staffIdx) {
|
||||
}
|
||||
|
||||
void daObjTpost_c::deliverLetter() {
|
||||
switch(field_0x8F6) {
|
||||
case 0x9A:
|
||||
switch(mPreItemNo) {
|
||||
case MAGYS_LETTER:
|
||||
dComIfGs_onEventBit(0x1220);
|
||||
break;
|
||||
case 0x99:
|
||||
dLetter_send(0xAC03);
|
||||
case MAGIC_SEED:
|
||||
dLetter_send(dEvtReg_NOTE_TO_MOM_e);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -334,9 +336,9 @@ int daObjTpost_c::getMsgXY() {
|
||||
cXyz pos(g_regHIO.mChild[12].mFloatRegs[0], g_regHIO.mChild[12].mFloatRegs[1], g_regHIO.mChild[12].mFloatRegs[2]);
|
||||
cXyz scale(2.0f, 2.0f, 2.0f);
|
||||
|
||||
switch(field_0x8F6) {
|
||||
case 0x99:
|
||||
case 0x9A:
|
||||
switch(mPreItemNo) {
|
||||
case MAGIC_SEED:
|
||||
case MAGYS_LETTER:
|
||||
msgId = 0xCE8;
|
||||
col.r = g_regHIO.mChild[12].mShortRegs[0] + 0x80;
|
||||
col.g = g_regHIO.mChild[12].mShortRegs[1] + 0x80;
|
||||
@@ -346,8 +348,8 @@ int daObjTpost_c::getMsgXY() {
|
||||
dComIfGp_particle_set(0x57, &pos, &shape_angle, &scale, 0xFF, NULL, -1, &col);
|
||||
|
||||
break;
|
||||
case 0x98:
|
||||
case 0x9B:
|
||||
case LETTER00:
|
||||
case MO_LETTER:
|
||||
setAnm(3, false);
|
||||
field_0x8EA = 1;
|
||||
msgId = 0xCEA;
|
||||
@@ -695,7 +697,7 @@ void daObjTpost_c::modeTalk() {
|
||||
|
||||
void daObjTpost_c::modeTalkXYInit() {
|
||||
setAnm(1, false);
|
||||
field_0x8F6 = dComIfGp_event_getPreItemNo();
|
||||
mPreItemNo = dComIfGp_event_getPreItemNo();
|
||||
field_0x8DC = l_HIO.field_0x14;
|
||||
field_0x8E0 = l_HIO.field_0x16;
|
||||
}
|
||||
@@ -893,7 +895,7 @@ void daObjTpost_c::createInit() {
|
||||
dLetter_autoStock(0x7D03);
|
||||
}
|
||||
|
||||
if(dLetter_isDelivery(0xAC03) && dComIfGs_isStageBossEnemy(6)) {
|
||||
if(dLetter_isDelivery(dEvtReg_NOTE_TO_MOM_e) && dComIfGs_isStageBossEnemy(dSv_save_c::STAGE_ET)) {
|
||||
dLetter_autoStock(0x7C03);
|
||||
}
|
||||
|
||||
|
||||
@@ -3520,7 +3520,9 @@ BOOL daPy_lk_c::draw() {
|
||||
hideHatAndBackle(link_root_joint->getMesh());
|
||||
}
|
||||
bool r4 = dComIfGs_getSelectEquip(0) == SWORD || dComIfGp_getMiniGameType() == 2; // TODO this may be an inline
|
||||
if (!r4 && dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != 5 || checkCaughtShapeHide() || checkDemoShieldNoDraw()) {
|
||||
if (!r4 && dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != dStageType_FF1_e ||
|
||||
checkCaughtShapeHide() || checkDemoShieldNoDraw())
|
||||
{
|
||||
mpCLModelData->getJointNodePointer(0x0D)->getMesh()->getShape()->hide(); // cl_podA joint
|
||||
} else {
|
||||
mpCLModelData->getJointNodePointer(0x0D)->getMesh()->getShape()->show(); // cl_podA joint
|
||||
@@ -4213,8 +4215,7 @@ BOOL daPy_lk_c::checkSubjectEnd(int) {
|
||||
/* 80112280-80112330 .text checkGuardAccept__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::checkGuardAccept() {
|
||||
if (checkModeFlg(0x40) && !checkBowAnime()) {
|
||||
u32 stageType = dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo());
|
||||
if (stageType != 2 ||
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != dStageType_MISC_e ||
|
||||
strcmp(dComIfGp_getStartStageName(), "Ojhous") == 0 ||
|
||||
strcmp(dComIfGp_getStartStageName(), "Orichh") == 0)
|
||||
{
|
||||
@@ -5130,7 +5131,9 @@ BOOL daPy_lk_c::startRestartRoom(u32 param_1, int eventInfoIdx, f32 param_3, int
|
||||
setDamagePoint(param_3);
|
||||
mTinkleShieldTimer = 0;
|
||||
|
||||
if (stageType == 7 && !dComIfGs_isEventBit(0x2A08) && (current.roomNo == 11 || current.roomNo == 44) && dStage_chkPlayerId(0x80, current.roomNo)) {
|
||||
if (stageType == dStageType_SEA_e && !dComIfGs_isEventBit(dEvtBit_SHIP_RIDDEN_e) &&
|
||||
(current.roomNo == 11 || current.roomNo == 44) && dStage_chkPlayerId(0x80, current.roomNo))
|
||||
{
|
||||
dComIfGp_setNextStage(dComIfGp_getStartStageName(), 0x80, current.roomNo, -1, 0.0f, param_1);
|
||||
u32 roomParam = setParamData(-1, 0, eventInfoIdx, 0);
|
||||
dComIfGs_setRestartRoomParam(roomParam);
|
||||
@@ -5148,7 +5151,7 @@ BOOL daPy_lk_c::startRestartRoom(u32 param_1, int eventInfoIdx, f32 param_3, int
|
||||
}
|
||||
|
||||
if (i_point == 0xFF) {
|
||||
if (stageType == 7) {
|
||||
if (stageType == dStageType_SEA_e) {
|
||||
cXyz* pos;
|
||||
if (dComIfGp_getShipActor()) {
|
||||
pos = &dComIfGp_getShipActor()->current.pos;
|
||||
|
||||
@@ -13,6 +13,10 @@
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
#include "f_op/f_op_camera.h"
|
||||
#include "JSystem/J3DGraphLoader/J3DAnmLoader.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/actor/d_a_ship.h"
|
||||
#include "d/actor/d_a_player_HIO.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
|
||||
extern const Vec l_tact_top;
|
||||
|
||||
@@ -337,7 +341,7 @@ BOOL daPy_lk_c::procTactPlay_init(s32 r27, int r30, int r31) {
|
||||
|
||||
if (r28 != 0 && m3570 == 1) {
|
||||
stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
|
||||
if (dStage_stagInfo_GetSTType(stag_info) == 7 && m34CC != 1 && r30 != 0) {
|
||||
if (dStage_stagInfo_GetSTType(stag_info) == dStageType_SEA_e && m34CC != 1 && r30 != 0) {
|
||||
daShip_c* ship = dComIfGp_getShipActor();
|
||||
u32 warpID = fopAcM_create(PROC_TORNADO, 1, ¤t.pos, current.roomNo);
|
||||
ship->setTactWarpID(warpID);
|
||||
|
||||
@@ -90,7 +90,7 @@ u32 daSea_WaterHeightInfo_Mng::GetHeight(int x, int z) {
|
||||
if (x < 0 || 9 <= x || z < 0 || 9 <= z)
|
||||
return 10;
|
||||
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == 7) {
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_SEA_e) {
|
||||
return mHeight[z][x];
|
||||
} else {
|
||||
return get_wave_max(dComIfGp_roomControl_getStayNo());
|
||||
|
||||
@@ -369,7 +369,7 @@ BOOL daTbox_c::checkEnv() {
|
||||
/* 00000CD8-00000D48 .text checkOpen__8daTbox_cFv */
|
||||
BOOL daTbox_c::checkOpen() {
|
||||
if (getFuncType() == FUNC_TYPE_EXTRA_SAVE_INFO || getFuncType() == FUNC_TYPE_EXTRA_SAVE_INFO_SPAWN) {
|
||||
int stageNo = 1;
|
||||
int stageNo = dSv_save_c::STAGE_SEA2;
|
||||
u8 tBoxNo = getTboxNo();
|
||||
|
||||
return dComIfGs_isStageTbox(stageNo, tBoxNo);
|
||||
@@ -903,7 +903,7 @@ void daTbox_c::OpenInit_com() {
|
||||
mOpenAnm.setPlaySpeed(1.0f);
|
||||
|
||||
if (getFuncType() == FUNC_TYPE_EXTRA_SAVE_INFO || getFuncType() == FUNC_TYPE_EXTRA_SAVE_INFO_SPAWN) {
|
||||
dComIfGs_onStageTbox(1, getTboxNo());
|
||||
dComIfGs_onStageTbox(dSv_save_c::STAGE_SEA2, getTboxNo());
|
||||
}
|
||||
else {
|
||||
u8 tboxNo = getTboxNo();
|
||||
|
||||
@@ -116,7 +116,7 @@ BOOL daVrbox2_color_set(vrbox2_class* i_this) {
|
||||
windPow = dKyw_get_wind_pow();
|
||||
windNrmVec = *windVec;
|
||||
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == 2) {
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_MISC_e) {
|
||||
s16 stageWindY = 0;
|
||||
if (strcmp(dComIfGp_getStartStageName(), "LinkRM") == 0)
|
||||
stageWindY = 0x4000;
|
||||
|
||||
+20
-12
@@ -1123,9 +1123,12 @@ void dComIfGs_setGameStartStage() {
|
||||
};
|
||||
|
||||
static check_data l_checkData[] = {
|
||||
{true, 0x2A08, "", 0, 0}, {true, 0xF80, "sea", 11, 128},
|
||||
{true, 0x801, "MajyuE", 0, 0}, {true, 0x808, "MajyuE", 0, 18},
|
||||
{true, 0x2401, "A_umikz", 0, 204}, {false, 0, "sea", 44, 128},
|
||||
{true, dEvtBit_SHIP_RIDDEN_e, "", 0, 0},
|
||||
{true, 0xF80, "sea", 11, 128},
|
||||
{true, 0x801, "MajyuE", 0, 0},
|
||||
{true, 0x808, "MajyuE", 0, 18},
|
||||
{true, 0x2401, "A_umikz", 0, 204},
|
||||
{false, 0, "sea", 44, 128},
|
||||
};
|
||||
|
||||
check_data* data_p = l_checkData;
|
||||
@@ -1155,7 +1158,7 @@ void dComIfGs_setGameStartStage() {
|
||||
room_no = dComIfGs_getEventReg(0xC3FF);
|
||||
point = dComIfGs_getEventReg(0x85FF);
|
||||
dKy_set_nexttime(120.0f);
|
||||
} else if (stage_type == 7) {
|
||||
} else if (stage_type == dStageType_SEA_e) {
|
||||
daPy_lk_c* player_p = daPy_getPlayerLinkActorClass();
|
||||
point = player_p->mRestartPoint;
|
||||
|
||||
@@ -1176,12 +1179,15 @@ void dComIfGs_setGameStartStage() {
|
||||
room_no = scls_p->mRoom;
|
||||
point = scls_p->mStart;
|
||||
}
|
||||
} else if (stage_type == 1 || stage_type == 6 || stage_type == 3 || stage_type == 8 || save_tbl == 9) {
|
||||
} else if (stage_type == dStageType_DUNGEON_e || stage_type == dStageType_MINIBOSS_e ||
|
||||
stage_type == dStageType_BOSS_e || stage_type == dStageType_UNKNOWN_8_e ||
|
||||
save_tbl == dSv_save_c::STAGE_HYRULE)
|
||||
{
|
||||
stage_scls_info_class* scls_p = getSceneList(0);
|
||||
strcpy(stage_name, scls_p->mStage);
|
||||
room_no = scls_p->mRoom;
|
||||
point = scls_p->mStart;
|
||||
} else if (save_tbl == 10) {
|
||||
} else if (save_tbl == dSv_save_c::STAGE_SHIP) {
|
||||
cXyz ikada_pos;
|
||||
dComIfGp_getIkadaShipBeforePos(&ikada_pos);
|
||||
|
||||
@@ -1189,7 +1195,9 @@ void dComIfGs_setGameStartStage() {
|
||||
strcpy(stage_name, scls_p->mStage);
|
||||
room_no = scls_p->mRoom;
|
||||
point = scls_p->mStart;
|
||||
} else if (save_tbl == 11 || save_tbl == 12 || save_tbl == 13) {
|
||||
} else if (save_tbl == dSv_save_c::STAGE_MISC || save_tbl == dSv_save_c::STAGE_SUBDUNGEON ||
|
||||
save_tbl == dSv_save_c::STAGE_SUBDUNGEON_NEW)
|
||||
{
|
||||
strcpy(stage_name, "sea");
|
||||
|
||||
stage_map_info_class* mapInfo = dComIfGp_getStage().getMapInfo();
|
||||
@@ -1222,14 +1230,14 @@ void dComIfGs_copyPlayerRecollectionData() {
|
||||
s32 tbl;
|
||||
dSv_player_status_c_c stts;
|
||||
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == 3) {
|
||||
if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 3)
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_BOSS_e) {
|
||||
if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_DRC)
|
||||
tbl = 0;
|
||||
else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 4)
|
||||
else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_FW)
|
||||
tbl = 1;
|
||||
else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 6)
|
||||
else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_ET)
|
||||
tbl = 2;
|
||||
else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 7)
|
||||
else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_WT)
|
||||
tbl = 3;
|
||||
else
|
||||
return;
|
||||
|
||||
@@ -67,7 +67,7 @@ const char* dEvent_exception_c::getEventName() {
|
||||
|
||||
if (mEventInfoIdx == 207) {
|
||||
JUT_ASSERT(0x9b, stage_info);
|
||||
if (dStage_stagInfo_GetSTType(stage_info) == 3)
|
||||
if (dStage_stagInfo_GetSTType(stage_info) == dStageType_BOSS_e)
|
||||
return "BS_SHUTTER_START";
|
||||
}
|
||||
|
||||
|
||||
+21
-21
@@ -589,10 +589,10 @@ void item_func_utuwa_heart() {
|
||||
dComIfGp_setItemLifeCount(dComIfGs_getMaxLife());
|
||||
|
||||
stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
|
||||
if (dStage_stagInfo_GetSaveTbl(stag_info) == 0) {
|
||||
if (dStage_stagInfo_GetSaveTbl(stag_info) == dSv_save_c::STAGE_SEA) {
|
||||
// Didn't get the Heart Container immediately after defeating Helmaroc King.
|
||||
// Instead got it from outside Forsaken Fortress, on the sea stage.
|
||||
dComIfGs_onStageLife(2);
|
||||
dComIfGs_onStageLife(dSv_save_c::STAGE_FF);
|
||||
} else {
|
||||
dComIfGs_onStageLife();
|
||||
}
|
||||
@@ -1424,47 +1424,47 @@ void item_func_tincle_rupee6() {
|
||||
|
||||
/* 800C4DB4-800C4DE4 .text item_func_lithograph1__Fv */
|
||||
void item_func_lithograph1() {
|
||||
dComIfGs_onEventBit(0x3508);
|
||||
dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_1_e);
|
||||
}
|
||||
|
||||
/* 800C4DE4-800C4E14 .text item_func_lithograph2__Fv */
|
||||
void item_func_lithograph2() {
|
||||
dComIfGs_onEventBit(0x3504);
|
||||
dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_2_e);
|
||||
}
|
||||
|
||||
/* 800C4E14-800C4E44 .text item_func_lithograph3__Fv */
|
||||
void item_func_lithograph3() {
|
||||
dComIfGs_onEventBit(0x3502);
|
||||
dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_3_e);
|
||||
}
|
||||
|
||||
/* 800C4E44-800C4E74 .text item_func_lithograph4__Fv */
|
||||
void item_func_lithograph4() {
|
||||
dComIfGs_onEventBit(0x3501);
|
||||
dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_4_e);
|
||||
}
|
||||
|
||||
/* 800C4E74-800C4EA4 .text item_func_lithograph5__Fv */
|
||||
void item_func_lithograph5() {
|
||||
dComIfGs_onEventBit(0x3680);
|
||||
dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_5_e);
|
||||
}
|
||||
|
||||
/* 800C4EA4-800C4ED4 .text item_func_lithograph6__Fv */
|
||||
void item_func_lithograph6() {
|
||||
dComIfGs_onEventBit(0x3640);
|
||||
dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_6_e);
|
||||
}
|
||||
|
||||
/* 800C4ED4-800C4F04 .text item_func_collectmap64__Fv */
|
||||
void item_func_collectmap64() {
|
||||
dComIfGs_onEventBit(0x3620);
|
||||
dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_7_e);
|
||||
}
|
||||
|
||||
/* 800C4F04-800C4F34 .text item_func_collectmap63__Fv */
|
||||
void item_func_collectmap63() {
|
||||
dComIfGs_onEventBit(0x3610);
|
||||
dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_8_e);
|
||||
}
|
||||
|
||||
/* 800C4F34-800C4F64 .text item_func_collectmap62__Fv */
|
||||
void item_func_collectmap62() {
|
||||
dComIfGs_onEventBit(0x3608);
|
||||
dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_9_e);
|
||||
}
|
||||
|
||||
/* 800C4F64-800C4FB8 .text item_func_collectmap61__Fv */
|
||||
@@ -2531,52 +2531,52 @@ int item_getcheck_func_xxx_039() {
|
||||
|
||||
/* 800C77E4-800C7814 .text item_getcheck_func_lithograph1__Fv */
|
||||
int item_getcheck_func_lithograph1() {
|
||||
return dComIfGs_isEventBit(0x3508);
|
||||
return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_1_e);
|
||||
}
|
||||
|
||||
/* 800C7814-800C7844 .text item_getcheck_func_lithograph2__Fv */
|
||||
int item_getcheck_func_lithograph2() {
|
||||
return dComIfGs_isEventBit(0x3504);
|
||||
return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_2_e);
|
||||
}
|
||||
|
||||
/* 800C7844-800C7874 .text item_getcheck_func_lithograph3__Fv */
|
||||
int item_getcheck_func_lithograph3() {
|
||||
return dComIfGs_isEventBit(0x3502);
|
||||
return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_3_e);
|
||||
}
|
||||
|
||||
/* 800C7874-800C78A4 .text item_getcheck_func_lithograph4__Fv */
|
||||
int item_getcheck_func_lithograph4() {
|
||||
return dComIfGs_isEventBit(0x3501);
|
||||
return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_4_e);
|
||||
}
|
||||
|
||||
/* 800C78A4-800C78D4 .text item_getcheck_func_lithograph5__Fv */
|
||||
int item_getcheck_func_lithograph5() {
|
||||
return dComIfGs_isEventBit(0x3680);
|
||||
return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_5_e);
|
||||
}
|
||||
|
||||
/* 800C78D4-800C7904 .text item_getcheck_func_lithograph6__Fv */
|
||||
int item_getcheck_func_lithograph6() {
|
||||
return dComIfGs_isEventBit(0x3640);
|
||||
return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_6_e);
|
||||
}
|
||||
|
||||
/* 800C7904-800C7934 .text item_getcheck_func_lithograph7__Fv */
|
||||
int item_getcheck_func_lithograph7() {
|
||||
return dComIfGs_isEventBit(0x3620);
|
||||
return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_7_e);
|
||||
}
|
||||
|
||||
/* 800C7934-800C7964 .text item_getcheck_func_lithograph8__Fv */
|
||||
int item_getcheck_func_lithograph8() {
|
||||
return dComIfGs_isEventBit(0x3610);
|
||||
return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_8_e);
|
||||
}
|
||||
|
||||
/* 800C7964-800C7994 .text item_getcheck_func_lithograph9__Fv */
|
||||
int item_getcheck_func_lithograph9() {
|
||||
return dComIfGs_isEventBit(0x3608);
|
||||
return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_9_e);
|
||||
}
|
||||
|
||||
/* 800C7994-800C79C4 .text item_getcheck_func_lithograph10__Fv */
|
||||
int item_getcheck_func_lithograph10() {
|
||||
return dComIfGs_isEventBit(0x3604);
|
||||
return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_10_e);
|
||||
}
|
||||
|
||||
/* 800C79C4-800C79F4 .text item_getcheck_func_lithograph11__Fv */
|
||||
|
||||
+1
-1
@@ -392,7 +392,7 @@ void envcolor_init() {
|
||||
g_env_light.field_0xc98 = 0;
|
||||
g_env_light.mbDayNightTactStop = false;
|
||||
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStage().getStagInfo()) == 3) {
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStage().getStagInfo()) == dStageType_BOSS_e) {
|
||||
g_env_light.mpSchejule = dKyd_schejule_boss_getp();
|
||||
} else {
|
||||
g_env_light.mpSchejule = dKyd_schejule_getp();
|
||||
|
||||
@@ -193,7 +193,7 @@ void dKyr_sun_move() {
|
||||
u8 numPointsVisible = 0, numCenterPointsVisible = 0;
|
||||
u32 stType = dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo());
|
||||
cXyz lightDir;
|
||||
if (g_env_light.mBaseLightInfluence.mColor.r == 0 && stType != 2) {
|
||||
if (g_env_light.mBaseLightInfluence.mColor.r == 0 && stType != dStageType_MISC_e) {
|
||||
dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mBaseLightInfluence.mPos, &lightDir);
|
||||
} else {
|
||||
dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mSunPos2, &lightDir);
|
||||
@@ -302,7 +302,7 @@ void dKyr_sun_move() {
|
||||
numPointsVisible = 0;
|
||||
}
|
||||
|
||||
if (stType == 2) {
|
||||
if (stType == dStageType_MISC_e) {
|
||||
numCenterPointsVisible = 0;
|
||||
numPointsVisible = 0;
|
||||
}
|
||||
@@ -556,7 +556,7 @@ void wave_move() {
|
||||
windPow = dKyw_get_wind_pow();
|
||||
windPowVec2 = *windVecP;
|
||||
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == 2) {
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_MISC_e) {
|
||||
stageWindY = 0;
|
||||
|
||||
if (strcmp(dComIfGp_getStartStageName(), "LinkRM") == 0)
|
||||
@@ -894,7 +894,7 @@ void dKyr_drawSun(Mtx drawMtx, cXyz* pPos, GXColor& reg0, u8** pImg) {
|
||||
sunPos = *pPos;
|
||||
|
||||
u32 stType = dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo());
|
||||
if (dKy_getEnvlight().mBaseLightInfluence.mColor.r == 0 && stType != 2) {
|
||||
if (dKy_getEnvlight().mBaseLightInfluence.mColor.r == 0 && stType != dStageType_MISC_e) {
|
||||
if (dKy_getEnvlight().mCurTime > 285.0f || dKy_getEnvlight().mCurTime < 105.0f)
|
||||
bDrawMoon = false;
|
||||
|
||||
|
||||
+2
-2
@@ -147,10 +147,10 @@ s32 dKyeff_Create(kankyo_class* i_ky) {
|
||||
g_env_light.mCurTime = 15.0f * cal.hours;
|
||||
} else if (dKy_checkEventNightStop()) {
|
||||
u32 stType = dStage_stagInfo_GetSTType(dComIfGp_getStage().getStagInfo());
|
||||
if (stType == 0 || stType == 7) {
|
||||
if (stType == dStageType_OUTDOORS_e || stType == dStageType_SEA_e) {
|
||||
dKyw_rain_set(250);
|
||||
g_env_light.mThunderEff.mMode = 1;
|
||||
} else if (stType == 2) {
|
||||
} else if (stType == dStageType_MISC_e) {
|
||||
if (strcmp(dComIfGp_getStartStageName(), "Ocrogh") == 0 || strcmp(dComIfGp_getStartStageName(), "Omori") == 0 ||
|
||||
strcmp(dComIfGp_getStartStageName(), "Orichh") == 0 || strcmp(dComIfGp_getStartStageName(), "Atorizk") == 0 ||
|
||||
strcmp(dComIfGp_getStartStageName(), "LinkRM") == 0 || strcmp(dComIfGp_getStartStageName(), "Ojhous2") == 0 ||
|
||||
|
||||
+3
-5
@@ -60,8 +60,7 @@ void dStage_KeepTresureInfoProc(dStage_dt_c* i_stage, stage_tresure_class* i_tre
|
||||
return;
|
||||
}
|
||||
u32 stageType = dStage_stagInfo_GetSTType(stagInfo);
|
||||
if (stageType == 3 || stageType == 6) {
|
||||
// Boss or miniboss room.
|
||||
if (stageType == dStageType_BOSS_e || stageType == dStageType_MINIBOSS_e) {
|
||||
return;
|
||||
}
|
||||
if (i_tresure == NULL) {
|
||||
@@ -90,8 +89,7 @@ void dStage_KeepDoorInfoProc(dStage_dt_c* i_stage, stage_tgsc_class* i_drtg) {
|
||||
return;
|
||||
}
|
||||
u32 stageType = dStage_stagInfo_GetSTType(stagInfo);
|
||||
if (stageType == 3 || stageType == 6) {
|
||||
// Boss or miniboss room.
|
||||
if (stageType == dStageType_BOSS_e || stageType == dStageType_MINIBOSS_e) {
|
||||
return;
|
||||
}
|
||||
if (i_drtg == NULL) {
|
||||
@@ -1890,7 +1888,7 @@ int dStage_shipInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) {
|
||||
s32 roomId = dComIfGp_getShipRoomId();
|
||||
|
||||
if (dStage_chkTaura(roomId)) {
|
||||
if (!dComIfGs_isEventBit(0x2A08) && dStage_setShipPos(0x80, roomId)) {
|
||||
if (!dComIfGs_isEventBit(dEvtBit_SHIP_RIDDEN_e) && dStage_setShipPos(0x80, roomId)) {
|
||||
shipId = 0xFF;
|
||||
roomId = 0xFF;
|
||||
dComIfGp_setShipId(0xFF);
|
||||
|
||||
Reference in New Issue
Block a user