mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-21 05:43:42 -07:00
ZAPD Update (#2851)
* git subrepo clone --force --branch=rebase2 C:/ZeldaStuff/ZAPDTR ZAPDTR/ subrepo: subdir: "ZAPDTR" merged: "6aa54a551" upstream: origin: "C:/ZeldaStuff/ZAPDTR" branch: "rebase2" commit: "6aa54a551" git-subrepo: version: "0.4.3" origin: "???" commit: "???" * git subrepo clone --force --branch=rebase2 C:/ZeldaStuff/ZAPDTR ZAPDTR/ subrepo: subdir: "ZAPDTR" merged: "88b012240" upstream: origin: "C:/ZeldaStuff/ZAPDTR" branch: "rebase2" commit: "88b012240" git-subrepo: version: "0.4.3" origin: "???" commit: "???" * Update (its broken) * fix the enum * git subrepo push --remote=C:/ZeldaStuff/ZAPDTR/ ZAPDTR subrepo: subdir: "ZAPDTR" merged: "b7b6e1c82" upstream: origin: "C:/ZeldaStuff/ZAPDTR/" branch: "rebase2" commit: "b7b6e1c82" git-subrepo: version: "0.4.3" origin: "???" commit: "???" * New names for LUS actions * git subrepo push --remote=C:/ZeldaStuff/ZAPDTR/ ZAPDTR subrepo: subdir: "ZAPDTR" merged: "c5cfebeee" upstream: origin: "C:/ZeldaStuff/ZAPDTR/" branch: "rebase2" commit: "c5cfebeee" git-subrepo: version: "0.4.3" origin: "???" commit: "???" * git subrepo clone (merge) --force --branch=rebase2 C:/ZeldaStuff/ZAPDTR ZAPDTR/ subrepo: subdir: "ZAPDTR" merged: "d5f4769b8" upstream: origin: "C:/ZeldaStuff/ZAPDTR" branch: "rebase2" commit: "d5f4769b8" git-subrepo: version: "0.4.3" origin: "???" commit: "???" * Fix missing commands in the exporter. * Cleanups. * git subrepo pull --force --remote=https://github.com/harbourmasters/ZAPDTR --branch=master ZAPDTR subrepo: subdir: "ZAPDTR" merged: "d4c35b90a" upstream: origin: "https://github.com/harbourmasters/ZAPDTR" branch: "master" commit: "d4c35b90a" git-subrepo: version: "0.4.3" origin: "???" commit: "???" * Add unordered_map include to fix MacOS * fix string_view * Update Main.cpp * fix string view * So close I can almost taste it * So close * Fix missed git marker. * Fix surface types and * Update ZFile.cpp * Delete Jenkinsfile --------- Co-authored-by: Christopher Leggett <chris@leggett.dev> Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
This commit is contained in:
parent
778f548b01
commit
f31a841789
91 changed files with 4385 additions and 7506 deletions
|
@ -77,8 +77,8 @@ void Ship::CollisionHeaderFactoryV0::ParseFileBinary(std::shared_ptr<BinaryReade
|
|||
for (uint32_t i = 0; i < collisionHeader->surfaceTypesCount; i++) {
|
||||
SurfaceType surfaceType;
|
||||
|
||||
surfaceType.data[1] = reader->ReadUInt32();
|
||||
surfaceType.data[0] = reader->ReadUInt32();
|
||||
surfaceType.data[1] = reader->ReadUInt32();
|
||||
|
||||
collisionHeader->surfaceTypes.push_back(surfaceType);
|
||||
}
|
||||
|
|
|
@ -52,13 +52,12 @@ std::shared_ptr<Ship::File> ResourceMgr_LoadFile(const char* path) {
|
|||
// Forward Declaration of function declared in OTRGlobals.cpp
|
||||
std::shared_ptr<Ship::Resource> GetResourceByNameHandlingMQ(const char* path);
|
||||
|
||||
bool Scene_CommandSpawnList(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandSpawnList(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetStartPositionList* cmdStartPos = std::static_pointer_cast<Ship::SetStartPositionList>(cmd);
|
||||
Ship::SetStartPositionList* cmdStartPos = (Ship::SetStartPositionList*)cmd;
|
||||
ActorEntry* entries = (ActorEntry*)cmdStartPos->GetPointer();
|
||||
|
||||
play->linkActorEntry = &entries[play->setupEntranceList[play->curSpawn].spawn];;
|
||||
play->linkActorEntry = &entries[play->setupEntranceList[play->curSpawn].spawn];
|
||||
play->linkAgeOnLoad = ((void)0, gSaveContext.linkAge);
|
||||
s16 linkObjectId = gLinkObjectIds[((void)0, gSaveContext.linkAge)];
|
||||
|
||||
|
@ -77,16 +76,14 @@ bool Scene_CommandActorList(PlayState* play, Ship::SceneCommand* cmd) {
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandUnused2(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandUnused2(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// OTRTODO: Do we need to implement this?
|
||||
//play->unk_11DFC = SEGMENTED_TO_VIRTUAL(cmd->unused02.segment);
|
||||
// play->unk_11DFC = SEGMENTED_TO_VIRTUAL(cmd->unused02.segment);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandCollisionHeader(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandCollisionHeader(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetCollisionHeader* cmdCol = std::static_pointer_cast<Ship::SetCollisionHeader>(cmd);
|
||||
Ship::SetCollisionHeader* cmdCol = (Ship::SetCollisionHeader*)cmd;
|
||||
BgCheck_Allocate(&play->colCtx, play, (CollisionHeader*)cmdCol->GetPointer());
|
||||
|
@ -94,8 +91,7 @@ bool Scene_CommandCollisionHeader(PlayState* play, Ship::SceneCommand* cmd)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandRoomList(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandRoomList(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetRoomList* cmdRoomList = std::static_pointer_cast<Ship::SetRoomList>(cmd);
|
||||
Ship::SetRoomList* cmdRoomList = (Ship::SetRoomList*)cmd;
|
||||
|
||||
|
@ -105,8 +101,7 @@ bool Scene_CommandRoomList(PlayState* play, Ship::SceneCommand* cmd)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandEntranceList(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandEntranceList(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetEntranceList* otrEntrance = std::static_pointer_cast<Ship::SetEntranceList>(cmd);
|
||||
Ship::SetEntranceList* otrEntrance = (Ship::SetEntranceList*)cmd;
|
||||
play->setupEntranceList = (EntranceEntry*)otrEntrance->GetPointer();
|
||||
|
@ -114,8 +109,7 @@ bool Scene_CommandEntranceList(PlayState* play, Ship::SceneCommand* cmd)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandSpecialFiles(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandSpecialFiles(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetSpecialObjects* specialCmd = std::static_pointer_cast<Ship::SetSpecialObjects>(cmd);
|
||||
Ship::SetSpecialObjects* specialCmd = (Ship::SetSpecialObjects*)cmd;
|
||||
|
||||
|
@ -124,15 +118,15 @@ bool Scene_CommandSpecialFiles(PlayState* play, Ship::SceneCommand* cmd)
|
|||
}
|
||||
|
||||
if (specialCmd->specialObjects.elfMessage != 0) {
|
||||
auto res = (Ship::Blob*)OTRPlay_LoadFile(play, sNaviMsgFiles[specialCmd->specialObjects.elfMessage - 1].fileName);
|
||||
auto res =
|
||||
(Ship::Blob*)OTRPlay_LoadFile(play, sNaviMsgFiles[specialCmd->specialObjects.elfMessage - 1].fileName);
|
||||
play->cUpElfMsgs = (ElfMessage*)res->Data.data();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandRoomBehavior(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandRoomBehavior(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetRoomBehavior* cmdRoom = std::static_pointer_cast<Ship::SetRoomBehavior>(cmd);
|
||||
Ship::SetRoomBehavior* cmdRoom = (Ship::SetRoomBehavior*)cmd;
|
||||
|
||||
|
@ -144,8 +138,7 @@ bool Scene_CommandRoomBehavior(PlayState* play, Ship::SceneCommand* cmd)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandMeshHeader(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandMeshHeader(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetMesh* otrMesh = static_pointer_cast<Ship::SetMesh>(cmd);
|
||||
Ship::SetMesh* otrMesh = (Ship::SetMesh*)cmd;
|
||||
play->roomCtx.curRoom.meshHeader = (MeshHeader*)otrMesh->GetPointer();
|
||||
|
@ -153,10 +146,9 @@ bool Scene_CommandMeshHeader(PlayState* play, Ship::SceneCommand* cmd)
|
|||
return false;
|
||||
}
|
||||
|
||||
extern "C" void* func_800982FC(ObjectContext * objectCtx, s32 bankIndex, s16 objectId);
|
||||
extern "C" void* func_800982FC(ObjectContext* objectCtx, s32 bankIndex, s16 objectId);
|
||||
|
||||
bool Scene_CommandObjectList(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandObjectList(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetObjectList* cmdObj = static_pointer_cast<Ship::SetObjectList>(cmd);
|
||||
Ship::SetObjectList* cmdObj = (Ship::SetObjectList*)cmd;
|
||||
|
||||
|
@ -166,12 +158,12 @@ bool Scene_CommandObjectList(PlayState* play, Ship::SceneCommand* cmd)
|
|||
ObjectStatus* status;
|
||||
ObjectStatus* status2;
|
||||
ObjectStatus* firstStatus;
|
||||
//s16* objectEntry = SEGMENTED_TO_VIRTUAL(cmd->objectList.segment);
|
||||
// s16* objectEntry = SEGMENTED_TO_VIRTUAL(cmd->objectList.segment);
|
||||
s16* objectEntry = (s16*)cmdObj->GetPointer();
|
||||
void* nextPtr;
|
||||
|
||||
k = 0;
|
||||
//i = play->objectCtx.unk_09;
|
||||
// i = play->objectCtx.unk_09;
|
||||
i = 0;
|
||||
firstStatus = &play->objectCtx.status[0];
|
||||
status = &play->objectCtx.status[i];
|
||||
|
@ -218,21 +210,18 @@ bool Scene_CommandObjectList(PlayState* play, Ship::SceneCommand* cmd)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandLightList(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandLightList(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetLightList* cmdLight = static_pointer_cast<Ship::SetLightList>(cmd);
|
||||
Ship::SetLightList* cmdLight = (Ship::SetLightList*)cmd;
|
||||
|
||||
for (size_t i = 0; i < cmdLight->lightList.size(); i++)
|
||||
{
|
||||
for (size_t i = 0; i < cmdLight->lightList.size(); i++) {
|
||||
LightContext_InsertLight(play, &play->lightCtx, (LightInfo*)&cmdLight->lightList[i]);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandPathList(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandPathList(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetPathways* cmdPath = static_pointer_cast<Ship::SetPathways>(cmd);
|
||||
Ship::SetPathways* cmdPath = (Ship::SetPathways*)cmd;
|
||||
play->setupPathList = (Path*)cmdPath->paths[0]->GetPointer();
|
||||
|
@ -250,20 +239,18 @@ bool Scene_CommandTransitionActorList(PlayState* play, Ship::SceneCommand* cmd)
|
|||
return false;
|
||||
}
|
||||
|
||||
//void TransitionActor_InitContext(GameState* state, TransitionActorContext* transiActorCtx) {
|
||||
// void TransitionActor_InitContext(GameState* state, TransitionActorContext* transiActorCtx) {
|
||||
// transiActorCtx->numActors = 0;
|
||||
//}
|
||||
|
||||
bool Scene_CommandLightSettingsList(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandLightSettingsList(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
play->envCtx.lightSettingsList = (EnvLightSettings*)cmd->GetPointer();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Scene Command 0x11: Skybox Settings
|
||||
bool Scene_CommandSkyboxSettings(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandSkyboxSettings(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetSkyboxSettings* cmdSky = static_pointer_cast<Ship::SetSkyboxSettings>(cmd);
|
||||
Ship::SetSkyboxSettings* cmdSky = (Ship::SetSkyboxSettings*)cmd;
|
||||
|
||||
|
@ -274,8 +261,7 @@ bool Scene_CommandSkyboxSettings(PlayState* play, Ship::SceneCommand* cmd)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandSkyboxDisables(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandSkyboxDisables(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetSkyboxModifier* cmdSky = static_pointer_cast<Ship::SetSkyboxModifier>(cmd);
|
||||
Ship::SetSkyboxModifier* cmdSky = (Ship::SetSkyboxModifier*)cmd;
|
||||
|
||||
|
@ -285,8 +271,7 @@ bool Scene_CommandSkyboxDisables(PlayState* play, Ship::SceneCommand* cmd)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandTimeSettings(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandTimeSettings(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetTimeSettings* cmdTime = static_pointer_cast<Ship::SetTimeSettings>(cmd);
|
||||
Ship::SetTimeSettings* cmdTime = (Ship::SetTimeSettings*)cmd;
|
||||
|
||||
|
@ -297,8 +282,7 @@ bool Scene_CommandTimeSettings(PlayState* play, Ship::SceneCommand* cmd)
|
|||
|
||||
if (cmdTime->settings.timeIncrement != 0xFF) {
|
||||
play->envCtx.timeIncrement = cmdTime->settings.timeIncrement;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
play->envCtx.timeIncrement = 0;
|
||||
}
|
||||
|
||||
|
@ -315,14 +299,11 @@ bool Scene_CommandTimeSettings(PlayState* play, Ship::SceneCommand* cmd)
|
|||
gSaveContext.skyboxTime = ((void)0, gSaveContext.dayTime);
|
||||
if ((gSaveContext.skyboxTime >= 0x2AAC) && (gSaveContext.skyboxTime < 0x4555)) {
|
||||
gSaveContext.skyboxTime = 0x3556;
|
||||
}
|
||||
else if ((gSaveContext.skyboxTime >= 0x4555) && (gSaveContext.skyboxTime < 0x5556)) {
|
||||
} else if ((gSaveContext.skyboxTime >= 0x4555) && (gSaveContext.skyboxTime < 0x5556)) {
|
||||
gSaveContext.skyboxTime = 0x5556;
|
||||
}
|
||||
else if ((gSaveContext.skyboxTime >= 0xAAAB) && (gSaveContext.skyboxTime < 0xB556)) {
|
||||
} else if ((gSaveContext.skyboxTime >= 0xAAAB) && (gSaveContext.skyboxTime < 0xB556)) {
|
||||
gSaveContext.skyboxTime = 0xB556;
|
||||
}
|
||||
else if ((gSaveContext.skyboxTime >= 0xC001) && (gSaveContext.skyboxTime < 0xCAAC)) {
|
||||
} else if ((gSaveContext.skyboxTime >= 0xC001) && (gSaveContext.skyboxTime < 0xCAAC)) {
|
||||
gSaveContext.skyboxTime = 0xCAAC;
|
||||
}
|
||||
}
|
||||
|
@ -343,8 +324,7 @@ bool Scene_CommandWindSettings(PlayState* play, Ship::SceneCommand* cmd) {
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandExitList(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandExitList(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
play->setupExitList = (s16*)cmd->GetPointer();
|
||||
|
||||
return false;
|
||||
|
@ -368,8 +348,7 @@ bool Scene_CommandSoundSettings(PlayState* play, Ship::SceneCommand* cmd) {
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandEchoSettings(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandEchoSettings(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetEchoSettings* cmdEcho = static_pointer_cast<Ship::SetEchoSettings>(cmd);
|
||||
Ship::SetEchoSettings* cmdEcho = (Ship::SetEchoSettings*)cmd;
|
||||
|
||||
|
@ -378,41 +357,36 @@ bool Scene_CommandEchoSettings(PlayState* play, Ship::SceneCommand* cmd)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandAlternateHeaderList(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandAlternateHeaderList(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetAlternateHeaders* cmdHeaders = static_pointer_cast<Ship::SetAlternateHeaders>(cmd);
|
||||
Ship::SetAlternateHeaders* cmdHeaders = (Ship::SetAlternateHeaders*)cmd;
|
||||
|
||||
//s32 pad;
|
||||
//SceneCmd* altHeader;
|
||||
// s32 pad;
|
||||
// SceneCmd* altHeader;
|
||||
|
||||
//osSyncPrintf("\n[ZU]sceneset age =[%X]", ((void)0, gSaveContext.linkAge));
|
||||
//osSyncPrintf("\n[ZU]sceneset time =[%X]", ((void)0, gSaveContext.cutsceneIndex));
|
||||
//osSyncPrintf("\n[ZU]sceneset counter=[%X]", ((void)0, gSaveContext.sceneSetupIndex));
|
||||
// osSyncPrintf("\n[ZU]sceneset age =[%X]", ((void)0, gSaveContext.linkAge));
|
||||
// osSyncPrintf("\n[ZU]sceneset time =[%X]", ((void)0, gSaveContext.cutsceneIndex));
|
||||
// osSyncPrintf("\n[ZU]sceneset counter=[%X]", ((void)0, gSaveContext.sceneSetupIndex));
|
||||
|
||||
if (gSaveContext.sceneSetupIndex != 0)
|
||||
{
|
||||
Ship::Scene* desiredHeader = std::static_pointer_cast<Ship::Scene>(cmdHeaders->headers[gSaveContext.sceneSetupIndex - 1]).get();
|
||||
if (gSaveContext.sceneSetupIndex != 0) {
|
||||
Ship::Scene* desiredHeader =
|
||||
std::static_pointer_cast<Ship::Scene>(cmdHeaders->headers[gSaveContext.sceneSetupIndex - 1]).get();
|
||||
|
||||
if (desiredHeader != nullptr)
|
||||
{
|
||||
if (desiredHeader != nullptr) {
|
||||
OTRScene_ExecuteCommands(play, desiredHeader);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
// "Coughh! There is no specified dataaaaa!"
|
||||
osSyncPrintf("\nげぼはっ! 指定されたデータがないでええっす!");
|
||||
|
||||
if (gSaveContext.sceneSetupIndex == 3)
|
||||
{
|
||||
Ship::Scene* desiredHeader = std::static_pointer_cast<Ship::Scene>(cmdHeaders->headers[gSaveContext.sceneSetupIndex - 2]).get();
|
||||
if (gSaveContext.sceneSetupIndex == 3) {
|
||||
Ship::Scene* desiredHeader =
|
||||
std::static_pointer_cast<Ship::Scene>(cmdHeaders->headers[gSaveContext.sceneSetupIndex - 2]).get();
|
||||
|
||||
// "Using adult day data there!"
|
||||
osSyncPrintf("\nそこで、大人の昼データを使用するでええっす!!");
|
||||
|
||||
if (desiredHeader != nullptr)
|
||||
{
|
||||
if (desiredHeader != nullptr) {
|
||||
OTRScene_ExecuteCommands(play, desiredHeader);
|
||||
return true;
|
||||
}
|
||||
|
@ -422,20 +396,18 @@ bool Scene_CommandAlternateHeaderList(PlayState* play, Ship::SceneCommand* cmd)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Scene_CommandCutsceneData(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandCutsceneData(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetCutscenes* cmdCS = std::static_pointer_cast<Ship::SetCutscenes>(cmd);
|
||||
Ship::SetCutscenes* cmdCS = (Ship::SetCutscenes*)cmd;
|
||||
|
||||
play->csCtx.segment = cmdCS->cutscene->commands.data();
|
||||
|
||||
//osSyncPrintf("\ngame_play->demo_play.data=[%x]", play->csCtx.segment);
|
||||
// osSyncPrintf("\ngame_play->demo_play.data=[%x]", play->csCtx.segment);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Camera & World Map Area
|
||||
bool Scene_CommandMiscSettings(PlayState* play, Ship::SceneCommand* cmd)
|
||||
{
|
||||
bool Scene_CommandMiscSettings(PlayState* play, Ship::SceneCommand* cmd) {
|
||||
// Ship::SetCameraSettings* cmdCam = std::static_pointer_cast<Ship::SetCameraSettings>(cmd);
|
||||
Ship::SetCameraSettings* cmdCam = (Ship::SetCameraSettings*)cmd;
|
||||
|
||||
|
@ -459,8 +431,7 @@ bool Scene_CommandMiscSettings(PlayState* play, Ship::SceneCommand* cmd)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool (*sceneCommands[])(PlayState*, Ship::SceneCommand*) =
|
||||
{
|
||||
bool (*sceneCommands[])(PlayState*, Ship::SceneCommand*) = {
|
||||
Scene_CommandSpawnList, // SCENE_CMD_ID_SPAWN_LIST
|
||||
Scene_CommandActorList, // SCENE_CMD_ID_ACTOR_LIST
|
||||
Scene_CommandUnused2, // SCENE_CMD_ID_UNUSED_2
|
||||
|
@ -489,20 +460,17 @@ bool (*sceneCommands[])(PlayState*, Ship::SceneCommand*) =
|
|||
Scene_CommandMiscSettings, // SCENE_CMD_ID_MISC_SETTINGS
|
||||
};
|
||||
|
||||
s32 OTRScene_ExecuteCommands(PlayState* play, Ship::Scene* scene)
|
||||
{
|
||||
s32 OTRScene_ExecuteCommands(PlayState* play, Ship::Scene* scene) {
|
||||
Ship::SceneCommandID cmdCode;
|
||||
|
||||
for (int i = 0; i < scene->commands.size(); i++)
|
||||
{
|
||||
for (int i = 0; i < scene->commands.size(); i++) {
|
||||
auto sceneCmd = scene->commands[i];
|
||||
|
||||
if (sceneCmd == nullptr) // UH OH
|
||||
continue;
|
||||
|
||||
|
||||
cmdCode = sceneCmd->cmdId;
|
||||
//osSyncPrintf("*** Scene_Word = { code=%d, data1=%02x, data2=%04x } ***\n", cmdCode, sceneCmd->base.data1, sceneCmd->base.data2);
|
||||
// osSyncPrintf("*** Scene_Word = { code=%d, data1=%02x, data2=%04x } ***\n", cmdCode, sceneCmd->base.data1, sceneCmd->base.data2);
|
||||
|
||||
if ((int)cmdCode == 0x14) {
|
||||
break;
|
||||
|
@ -511,23 +479,21 @@ s32 OTRScene_ExecuteCommands(PlayState* play, Ship::Scene* scene)
|
|||
if ((int)cmdCode <= 0x19) {
|
||||
if (sceneCommands[(int)cmdCode](play, sceneCmd.get()))
|
||||
break;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
osSyncPrintf(VT_FGCOL(RED));
|
||||
osSyncPrintf("code の値が異常です\n"); // "code variable is abnormal"
|
||||
osSyncPrintf(VT_RST);
|
||||
}
|
||||
|
||||
//sceneCmd++;
|
||||
// sceneCmd++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C" s32 OTRfunc_800973FC(PlayState* play, RoomContext* roomCtx) {
|
||||
if (roomCtx->status == 1) {
|
||||
//if (!osRecvMesg(&roomCtx->loadQueue, NULL, OS_MESG_NOBLOCK)) {
|
||||
if (1)
|
||||
{
|
||||
// if (!osRecvMesg(&roomCtx->loadQueue, NULL, OS_MESG_NOBLOCK)) {
|
||||
if (1) {
|
||||
roomCtx->status = 0;
|
||||
roomCtx->curRoom.segment = roomCtx->unk_34;
|
||||
gSegments[3] = VIRTUAL_TO_PHYSICAL(roomCtx->unk_34);
|
||||
|
@ -560,13 +526,15 @@ extern "C" s32 OTRfunc_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomN
|
|||
return 0; // UH OH
|
||||
|
||||
size = play->roomList[roomNum].vromEnd - play->roomList[roomNum].vromStart;
|
||||
roomCtx->unk_34 = (void*)ALIGN16((uintptr_t)roomCtx->bufPtrs[roomCtx->unk_30] - ((size + 8) * roomCtx->unk_30 + 7));
|
||||
roomCtx->unk_34 =
|
||||
(void*)ALIGN16((uintptr_t)roomCtx->bufPtrs[roomCtx->unk_30] - ((size + 8) * roomCtx->unk_30 + 7));
|
||||
|
||||
osCreateMesgQueue(&roomCtx->loadQueue, &roomCtx->loadMsg, 1);
|
||||
//DmaMgr_SendRequest2(&roomCtx->dmaRequest, roomCtx->unk_34, play->roomList[roomNum].vromStart, size, 0,
|
||||
// DmaMgr_SendRequest2(&roomCtx->dmaRequest, roomCtx->unk_34, play->roomList[roomNum].vromStart, size, 0,
|
||||
//&roomCtx->loadQueue, NULL, __FILE__, __LINE__);
|
||||
|
||||
auto roomData = std::static_pointer_cast<Ship::Scene>(GetResourceByNameHandlingMQ(play->roomList[roomNum].fileName));
|
||||
auto roomData =
|
||||
std::static_pointer_cast<Ship::Scene>(GetResourceByNameHandlingMQ(play->roomList[roomNum].fileName));
|
||||
roomCtx->status = 1;
|
||||
roomCtx->roomToLoad = roomData.get();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue