Skip to content

Commit

Permalink
Merge pull request #100 from PieVieRo/LoadTitleAnm
Browse files Browse the repository at this point in the history
Implemented MainMenu::LoadTitleAnm
  • Loading branch information
roblabla committed Mar 24, 2024
2 parents c8decde + 073f43d commit 1b18cd3
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 1 deletion.
1 change: 1 addition & 0 deletions config/implemented.csv
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ DebugPrint2
FileSystem::OpenPath
FileSystem::WriteDataToFile
MainMenu::BeginStartup
MainMenu::LoadTitleAnm
MidiDevice::MidiDevice
MidiDevice::~MidiDevice
MidiOutput::MidiOutput
Expand Down
2 changes: 1 addition & 1 deletion config/stubbed.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
AnmManager::LoadTexture
AnmManager::ReleaseAnm
AnmManager::ExecuteAnmIdx
AnmManager::LoadTextureMipmap
AnmManager::LoadSprite
AsciiManager::DrawStrings
Expand All @@ -10,7 +11,6 @@ StageMenu::OnDrawRetryMenu
AsciiManager::DrawPopupsWithHwVertexProcessing
AsciiManager::DrawPopupsWithoutHwVertexProcessing
GameWindow::Render
MainMenu::LoadTitleAnm
MidiDevice::Close
MidiTimer::StopTimer
MidiOutput::ClearTracks
Expand Down
1 change: 1 addition & 0 deletions src/AnmManager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ struct AnmManager

void ReleaseAnm(i32 anmIdx);
ZunResult LoadAnm(i32 anmIdx, char *path, i32 unk);
void ExecuteAnmIdx(AnmVm *vm, int anmFileIdx);

AnmLoadedSprite sprites[2048];
AnmVm virtualMachine;
Expand Down
63 changes: 63 additions & 0 deletions src/MainMenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@
#include <windows.h>

#include "MainMenu.hpp"

#include "AnmManager.hpp"
#include "Supervisor.hpp"
#include "i18n.hpp"

#pragma optimize("s", on)
#pragma var_order(time, i, vector3Ptr)
Expand Down Expand Up @@ -50,3 +53,63 @@ ZunResult MainMenu::BeginStartup()
return ZUN_SUCCESS;
}
#pragma optimize("", on)

#pragma optimize("s", on)
#pragma var_order(i, loadedTitle01, loadedTitle02, loadedTitle03, loadedTitle04, loadedTitle01s, loadedTitle04s)
ZunResult MainMenu::LoadTitleAnm(MainMenu *menu)
{
i32 i;
// a bunch of ZunResults so the stack size is right
ZunResult loadedTitle01;
ZunResult loadedTitle02;
ZunResult loadedTitle03;
ZunResult loadedTitle04;
ZunResult loadedTitle01s;
ZunResult loadedTitle04s;

g_Supervisor.LoadPbg3(3, TH_TL_DAT_FILE);
for (i = 0x1b; i <= 0x24; i++)
{
g_AnmManager->ReleaseAnm(i);
}
if (g_AnmManager->LoadAnm(0x15, "data/title01.anm", 0x100))
{
return ZUN_ERROR;
}
if (g_AnmManager->LoadAnm(0x18, "data/title02.anm", 0x11b))
{
return ZUN_ERROR;
}
if (g_AnmManager->LoadAnm(0x19, "data/title03.anm", 0x11f))
{
return ZUN_ERROR;
}
if (g_AnmManager->LoadAnm(0x1a, "data/title04.anm", 0x122))
{
return ZUN_ERROR;
}
if (g_AnmManager->LoadAnm(0x16, "data/title01s.anm", 0x17a))
{
return ZUN_ERROR;
}
if (g_AnmManager->LoadAnm(0x17, "data/title04s.anm", 0x195))
{
return ZUN_ERROR;
}

for (i = 0; i < 80; i++)
{
g_AnmManager->ExecuteAnmIdx(&menu->vm[i], 0x100 + i);
menu->vm[i].flags &= 0xfffffffe;
menu->vm[i].anotherSpriteNumber = menu->vm[i].spriteNumber;
menu->vm[i].flags |= AnmVmFlags_12;
}

if (g_AnmManager->LoadSurface(0, "data/title/title00.jpg"))
{
return ZUN_ERROR;
}

return ZUN_SUCCESS;
}
#pragma optimize("", on)
2 changes: 2 additions & 0 deletions src/i18n.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
#define TH_JP_ERR_ANMMANAGER_TEXTURE_CORRUPTED "テクスチャ %s が読み込めません。データが失われてるか壊れています\n"
#define TH_JP_IN_DAT_FILE "紅魔郷IN.dat"
#define TH_JP_MD_DAT_FILE "紅魔郷MD.dat"
#define TH_JP_TL_DAT_FILE "紅魔郷TL.dat"

// EN
#define TH_EN_CONFIG_FILE "th06.cfg"
Expand Down Expand Up @@ -153,3 +154,4 @@
#define TH_ERR_ANMMANAGER_TEXTURE_CORRUPTED TH_MAKE_LANG_STR(TH_LANG, _ERR_ANMMANAGER_TEXTURE_CORRUPTED)
#define TH_IN_DAT_FILE TH_MAKE_LANG_STR(TH_LANG, _IN_DAT_FILE)
#define TH_MD_DAT_FILE TH_MAKE_LANG_STR(TH_LANG, _MD_DAT_FILE)
#define TH_TL_DAT_FILE TH_MAKE_LANG_STR(TH_LANG, _TL_DAT_FILE)

0 comments on commit 1b18cd3

Please sign in to comment.