mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-22 09:22:18 -05:00
Debug camera (#2400)
* Moves SoH mixer to SoH from LUS. * Debug camera now works in SoH, but mempak saving does not (yet). * Debug camera is now enabled/disabled based on the gDebugEnabled cvar. * Updates OTRGlobals comments * Updates OTRGlobals comments
This commit is contained in:
parent
569013535e
commit
47f206825d
@ -40,6 +40,7 @@
|
||||
#include "Enhancements/n64_weird_frame_data.inc"
|
||||
#include "frame_interpolation.h"
|
||||
#include "variables.h"
|
||||
#include "z64.h"
|
||||
#include "macros.h"
|
||||
#include <Utils/StringHelper.h>
|
||||
#include <Hooks.h>
|
||||
@ -107,6 +108,87 @@ CustomMessageManager* CustomMessageManager::Instance;
|
||||
ItemTableManager* ItemTableManager::Instance;
|
||||
GameInteractor* GameInteractor::Instance;
|
||||
|
||||
extern "C" char** cameraStrings;
|
||||
std::vector<std::shared_ptr<std::string>> cameraStdStrings;
|
||||
|
||||
// OTRTODO: A lot of these left in Japanese are used by the mempak manager. LUS does not currently support mempaks. Ignore unused ones.
|
||||
const char* constCameraStrings[] = {
|
||||
"INSUFFICIENT",
|
||||
"KEYFRAMES",
|
||||
"YOU CAN ADD MORE",
|
||||
"FINISHED",
|
||||
"PLAYING",
|
||||
"DEMO CAMERA TOOL",
|
||||
"CANNOT PLAY",
|
||||
"KEYFRAME ",
|
||||
"PNT / ",
|
||||
"> >",
|
||||
"< <",
|
||||
"< >",
|
||||
GFXP_KATAKANA "*プレイヤ-*",
|
||||
"E MODE FIX",
|
||||
"E MODE ABS",
|
||||
GFXP_HIRAGANA "ガメン" GFXP_KATAKANA " デモ", // OTRTODO: Unused, get a translation! Number 15
|
||||
GFXP_HIRAGANA "ガメン フツウ", // OTRTODO: Unused, get a translation! Number 16
|
||||
"P TIME MAX",
|
||||
GFXP_KATAKANA "リンク" GFXP_HIRAGANA " キオク", // OTRTODO: Unused, get a translation! Number 18
|
||||
GFXP_KATAKANA "リンク" GFXP_HIRAGANA " ムシ", // OTRTODO: Unused, get a translation! Number 19
|
||||
"*VIEWPT*",
|
||||
"*CAMPOS*",
|
||||
"DEBUG CAMERA",
|
||||
"CENTER/LOCK",
|
||||
"CENTER/FREE",
|
||||
"DEMO CONTROL",
|
||||
GFXP_KATAKANA "メモリ" GFXP_HIRAGANA "ガタリマセン",
|
||||
"p",
|
||||
"e",
|
||||
"s",
|
||||
"l",
|
||||
"c",
|
||||
GFXP_KATAKANA "メモリパック",
|
||||
GFXP_KATAKANA "セーブ",
|
||||
GFXP_KATAKANA "ロード",
|
||||
GFXP_KATAKANA "クリア-",
|
||||
GFXP_HIRAGANA "ヲヌカナイデネ",
|
||||
"FREE BYTE",
|
||||
"NEED BYTE",
|
||||
GFXP_KATAKANA "*メモリ-パック*",
|
||||
GFXP_HIRAGANA "ヲミツケラレマセン",
|
||||
GFXP_KATAKANA "ファイル " GFXP_HIRAGANA "ヲ",
|
||||
GFXP_HIRAGANA "シテモイイデスカ?",
|
||||
GFXP_HIRAGANA "ゲンザイヘンシュウチュウノ", // OTRTODO: Unused, get a translation! Number 43
|
||||
GFXP_KATAKANA "ファイル" GFXP_HIRAGANA "ハハキサレマス", // OTRTODO: Unused, get a translation! Number 44
|
||||
GFXP_HIRAGANA "ハイ",
|
||||
GFXP_HIRAGANA "イイエ",
|
||||
GFXP_HIRAGANA "シテイマス",
|
||||
GFXP_HIRAGANA "ウワガキ", // OTRTODO: Unused, get a translation! Number 48
|
||||
GFXP_HIRAGANA "シマシタ",
|
||||
"USE BYTE",
|
||||
GFXP_HIRAGANA "ニシッパイ",
|
||||
"E MODE REL",
|
||||
"FRAME ",
|
||||
"KEY / ",
|
||||
"(CENTER)",
|
||||
"(ORIG)",
|
||||
"(PLAYER)",
|
||||
"(ALIGN)",
|
||||
"(SET)",
|
||||
"(OBJECT)",
|
||||
GFXP_KATAKANA "ポイントNo. ", // OTRTODO: Unused, need translation. Number 62
|
||||
"FOV ",
|
||||
"N FRAME ",
|
||||
"Z ROT ",
|
||||
GFXP_KATAKANA "モ-ド ", // OTRTODO: Unused, need translation. Number 65
|
||||
" R FOCUS ",
|
||||
"PMAX ",
|
||||
"DEPTH ",
|
||||
"XROT ",
|
||||
"YROT ",
|
||||
GFXP_KATAKANA "フレ-ム ",
|
||||
GFXP_KATAKANA "ト-タル ",
|
||||
GFXP_KATAKANA "キ- / ",
|
||||
};
|
||||
|
||||
OTRGlobals::OTRGlobals() {
|
||||
std::vector<std::string> OTRFiles;
|
||||
std::string mqPath = Ship::Window::GetPathRelativeToAppDirectory("oot-mq.otr");
|
||||
@ -165,6 +247,16 @@ OTRGlobals::OTRGlobals() {
|
||||
|
||||
hasMasterQuest = hasOriginal = false;
|
||||
|
||||
// Move the camera strings from read only memory onto the heap (writable memory)
|
||||
// This is in OTRGlobals right now because this is a place that will only ever be run once at the beginning of startup.
|
||||
// We should probably find some code in db_camera that does initialization and only run once, and then dealloc on deinitialization.
|
||||
cameraStrings = (char**)malloc(sizeof(constCameraStrings));
|
||||
for (int32_t i = 0; i < sizeof(constCameraStrings) / sizeof(char*); i++) {
|
||||
// OTRTODO: never deallocated...
|
||||
auto dup = strdup(constCameraStrings[i]);
|
||||
cameraStrings[i] = dup;
|
||||
}
|
||||
|
||||
auto versions = context->GetResourceManager()->GetGameVersions();
|
||||
|
||||
for (uint32_t version : versions) {
|
||||
|
@ -3,75 +3,7 @@
|
||||
|
||||
static PlayState* sPlayState;
|
||||
|
||||
// TODO: cleanup these arrays and UB access
|
||||
char* D_8012CEE0[] = { GFXP_KATAKANA "キ-フレ-ム" GFXP_HIRAGANA "ガ" };
|
||||
char* D_8012CEE4 = GFXP_HIRAGANA "タリマセン。";
|
||||
char* D_8012CEE8 = GFXP_HIRAGANA "サイセイデキマセン";
|
||||
char* D_8012CEEC = GFXP_HIRAGANA "サイセイシュウリョウ";
|
||||
char* D_8012CEF0 = GFXP_HIRAGANA "サイセイチュウ!";
|
||||
|
||||
char* D_8012CEF4 = "DEMO CAMERA TOOL";
|
||||
char* D_8012CEF8[] = { GFXP_HIRAGANA "モウハイリマセン", GFXP_HIRAGANA "トウロク テンメ", GFXP_HIRAGANA "ヘンコウ / " };
|
||||
char* D_8012CF04 = "> >";
|
||||
char* D_8012CF08 = "< <";
|
||||
char* D_8012CF0C = "< >";
|
||||
char* D_8012CF10 = GFXP_KATAKANA "*プレイヤ-*";
|
||||
char* D_8012CF14 = GFXP_KATAKANA "Eモ-ド" GFXP_HIRAGANA " ソウタイ";
|
||||
char* D_8012CF18[] = { GFXP_KATAKANA "Eモ-ド" GFXP_HIRAGANA "ゼッタイ", GFXP_HIRAGANA "ガメン" GFXP_KATAKANA " デモ",
|
||||
GFXP_HIRAGANA "ガメン フツウ" };
|
||||
char* D_8012CF24[] = { GFXP_HIRAGANA "Pジカン MAX", GFXP_KATAKANA "リンク" GFXP_HIRAGANA " キオク",
|
||||
GFXP_KATAKANA "リンク" GFXP_HIRAGANA " ムシ" };
|
||||
char* D_8012CF30 = GFXP_HIRAGANA "*ミテルイチ*";
|
||||
char* D_8012CF34 = GFXP_KATAKANA "*カメラ" GFXP_HIRAGANA "イチ*";
|
||||
char* D_8012CF38 = "DEBUG CAMERA";
|
||||
char* D_8012CF3C = GFXP_KATAKANA "センタ-/ロック";
|
||||
char* D_8012CF40 = GFXP_KATAKANA "センタ-/フリ-";
|
||||
|
||||
char* D_8012CF44 = "DEMO CONTROL";
|
||||
char* D_8012CF48 = GFXP_KATAKANA "メモリ" GFXP_HIRAGANA "ガタリマセン";
|
||||
char* D_8012CF4C = "p";
|
||||
char* D_8012CF50[] = { "e", "s", "l", "c" };
|
||||
|
||||
char* D_8012CF60[] = { GFXP_KATAKANA "メモリパック" }; // "Mempak"
|
||||
char* D_8012CF64 = GFXP_KATAKANA "セーブ"; // "Save"
|
||||
char* D_8012CF68 = GFXP_KATAKANA "ロード"; // "Load"
|
||||
char* D_8012CF6C = GFXP_KATAKANA "クリア-"; // "Clear"
|
||||
char* D_8012CF70 = GFXP_HIRAGANA "ヲヌカナイデネ";
|
||||
|
||||
char* D_8012CF74 = "FREE BYTE";
|
||||
char* D_8012CF78 = "NEED BYTE";
|
||||
char* D_8012CF7C = GFXP_KATAKANA "*メモリ-パック*";
|
||||
char* D_8012CF80 = GFXP_HIRAGANA "ヲミツケラレマセン";
|
||||
char* D_8012CF84 = GFXP_KATAKANA "ファイル " GFXP_HIRAGANA "ヲ";
|
||||
char* D_8012CF88[] = { GFXP_HIRAGANA "シテモイイデスカ?", GFXP_HIRAGANA "ゲンザイヘンシュウチュウノ",
|
||||
GFXP_KATAKANA "ファイル" GFXP_HIRAGANA "ハハキサレマス" };
|
||||
char* D_8012CF94 = GFXP_HIRAGANA "ハイ";
|
||||
char* D_8012CF98 = GFXP_HIRAGANA "イイエ";
|
||||
char* D_8012CF9C[] = { GFXP_HIRAGANA "シテイマス", GFXP_HIRAGANA "ウワガキ" };
|
||||
char* D_8012CFA4 = GFXP_HIRAGANA "シマシタ";
|
||||
char* D_8012CFA8 = "USE BYTE";
|
||||
char* D_8012CFAC = GFXP_HIRAGANA "ニシッパイ";
|
||||
|
||||
char* D_8012CFB0 = GFXP_KATAKANA "Eモ-ド" GFXP_HIRAGANA " コテイ";
|
||||
char D_8012CFB4[] = GFXP_KATAKANA "フレ-ム ";
|
||||
char D_8012CFC4[] = GFXP_KATAKANA "キ- / ";
|
||||
char D_8012CFD0[] = GFXP_HIRAGANA "(センタ-テン)\0\0\0\0\0";
|
||||
char D_8012CFE4[] = GFXP_HIRAGANA "(ゲンテン)\0\0\0\0\0\0";
|
||||
char D_8012CFF8[] = GFXP_KATAKANA "(プレイヤ-)\0\0\0\0\0";
|
||||
char D_8012D00C[] = GFXP_HIRAGANA "(イチアワセ)\0\0\0\0\0\0";
|
||||
char D_8012D020[] = GFXP_HIRAGANA "(セッテイ)\0\0\0\0\0\0\0\0";
|
||||
char D_8012D034[] = GFXP_HIRAGANA "(キャッカン)\0\0\0\0\0\0";
|
||||
char D_8012D048[] = GFXP_KATAKANA "ポイントNo. \0\0\0";
|
||||
char D_8012D05C[] = GFXP_HIRAGANA "ガカク \0\0\0";
|
||||
char D_8012D070[] = GFXP_KATAKANA "Nフレ-ム \0\0\0\0";
|
||||
char D_8012D084[] = GFXP_HIRAGANA "Zカイテン \0\0\0";
|
||||
char D_8012D098[] = GFXP_KATAKANA "モ-ド \0\0\0\0";
|
||||
char D_8012D0AC[] = " R" GFXP_HIRAGANA "チュウシン \0\0\0";
|
||||
|
||||
char D_8012D0C0[] = GFXP_HIRAGANA "Pジカン \0\0";
|
||||
char D_8012D0D4[] = GFXP_HIRAGANA "キョリ \0";
|
||||
char D_8012D0E4[] = GFXP_HIRAGANA "Xカイテン \0\0";
|
||||
char D_8012D0F8[] = GFXP_HIRAGANA "Yカイテン \0\0";
|
||||
char** cameraStrings = {0};
|
||||
|
||||
#define ACTION_E 0
|
||||
#define ACTION_SAVE 1
|
||||
@ -94,6 +26,7 @@ static DbCamera* sDbCamPtr;
|
||||
static s16 D_8016110C;
|
||||
static DbCameraAnim sDbCamAnim;
|
||||
|
||||
|
||||
Vec3f* DbCamera_AddVecSph(Vec3f* out, Vec3f* in, VecSph* sph) {
|
||||
Vec3f ret;
|
||||
Vec3f vec;
|
||||
@ -168,9 +101,6 @@ char* DbCamera_SetTextValue(s16 value, char* str, u8 endIdx) {
|
||||
char* strIter;
|
||||
char sign;
|
||||
|
||||
// OTRTODO - This crashes...
|
||||
return;
|
||||
|
||||
strIter = str + (s32)endIdx - 1;
|
||||
str[endIdx] = '\0';
|
||||
|
||||
@ -367,9 +297,9 @@ void func_800B44E0(DbCamera* dbCamera, Camera* cam) {
|
||||
Audio_PlaySoundGeneral(NA_SE_SY_ERROR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
|
||||
sDbCamAnim.unk_0A = 0;
|
||||
}
|
||||
func_8006376C(0x11, 0x17, 3, D_8012CEE0[0]);
|
||||
func_8006376C(0x12, 0x18, 3, D_8012CEE4);
|
||||
func_8006376C(0x10, 0x1A, 1, D_8012CEE8);
|
||||
func_8006376C(0x0D, 0x17, 3, cameraStrings[0]);
|
||||
func_8006376C(0x0E, 0x18, 3, cameraStrings[1]);
|
||||
func_8006376C(0x0B, 0x1A, 1, cameraStrings[2]);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -383,7 +313,7 @@ void func_800B44E0(DbCamera* dbCamera, Camera* cam) {
|
||||
|
||||
if (dbCamera->sub.nFrames > 0 && dbCamera->sub.nFrames < sDbCamAnim.unk_04) {
|
||||
sDbCamAnim.unk_0A = 0;
|
||||
func_8006376C(0xF, 0x1A, 1, D_8012CEEC);
|
||||
func_8006376C(0xF, 0x1A, 1, cameraStrings[3]);
|
||||
}
|
||||
|
||||
if (dbCamera->sub.mode != 1) {
|
||||
@ -398,19 +328,19 @@ void func_800B44E0(DbCamera* dbCamera, Camera* cam) {
|
||||
dbCamera->roll = sDbCamAnim.roll;
|
||||
dbCamera->rollDegrees = sDbCamAnim.roll * (360.0f / 256.0f);
|
||||
|
||||
DbCamera_SetTextValue(sDbCamAnim.unk_04, &D_8012CFB4[8], 4);
|
||||
func_8006376C(0x10, 0x17, 3, D_8012CFB4);
|
||||
D_8012CFC4[5] = ((sDbCamAnim.keyframe + 1) / 10) + '0';
|
||||
D_8012CFC4[6] = ((sDbCamAnim.keyframe + 1) % 10) + '0';
|
||||
D_8012CFC4[8] = ((dbCamera->sub.nPoints - 5) / 10) + '0';
|
||||
D_8012CFC4[9] = ((dbCamera->sub.nPoints - 5) % 10) + '0';
|
||||
func_8006376C(0x10, 0x18, 3, D_8012CFC4);
|
||||
func_8006376C(0x10, 0x1A, 1, D_8012CEF0);
|
||||
DbCamera_SetTextValue(sDbCamAnim.unk_04, &cameraStrings[53][6], 4);
|
||||
func_8006376C(0x10, 0x17, 3, cameraStrings[53]);
|
||||
cameraStrings[54][4] = ((sDbCamAnim.keyframe + 1) / 10) + '0';
|
||||
cameraStrings[54][5] = ((sDbCamAnim.keyframe + 1) % 10) + '0';
|
||||
cameraStrings[54][7] = ((dbCamera->sub.nPoints - 5) / 10) + '0';
|
||||
cameraStrings[54][8] = ((dbCamera->sub.nPoints - 5) % 10) + '0';
|
||||
func_8006376C(0x10, 0x18, 3, cameraStrings[54]);
|
||||
func_8006376C(0x10, 0x1A, 1, cameraStrings[4]);
|
||||
return;
|
||||
}
|
||||
|
||||
sDbCamAnim.unk_0A = 0;
|
||||
func_8006376C(0xF, 0x1A, 1, D_8012CEEC);
|
||||
func_8006376C(0xF, 0x1A, 1, cameraStrings[3]);
|
||||
}
|
||||
|
||||
void DbCamera_PrintPoints(const char* name, s16 count, CutsceneCameraPoint* points) {
|
||||
@ -986,7 +916,7 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) {
|
||||
|
||||
if (dbCamera->unk_00 == 1) {
|
||||
OREG(0) = 8;
|
||||
func_8006376C(0xC, 5, 0, D_8012CEF4);
|
||||
func_8006376C(0xC, 5, 0, cameraStrings[5]);
|
||||
if (CHECK_BTN_ALL(sPlayState->state.input[2].cur.button, BTN_CRIGHT) &&
|
||||
!CHECK_BTN_ALL(sPlayState->state.input[2].cur.button, BTN_L)) {
|
||||
func_800B44E0(dbCamera, cam);
|
||||
@ -1068,21 +998,21 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) {
|
||||
}
|
||||
}
|
||||
|
||||
func_8006376C(0xA, 6, (dbCamera->sub.unk_08 == 0) ? 7 : 4, D_8012D00C);
|
||||
func_8006376C(0x11, 6, (dbCamera->sub.unk_08 == 1) ? 7 : 4, D_8012D020);
|
||||
func_8006376C(0x17, 6, (dbCamera->sub.unk_08 == 2) ? 7 : 4, D_8012D034);
|
||||
func_8006376C(0xA, 6, (dbCamera->sub.unk_08 == 0) ? 7 : 4, cameraStrings[58]);
|
||||
func_8006376C(0x11, 6, (dbCamera->sub.unk_08 == 1) ? 7 : 4, cameraStrings[59]);
|
||||
func_8006376C(0x17, 6, (dbCamera->sub.unk_08 == 2) ? 7 : 4, cameraStrings[60]);
|
||||
if (dbCamera->sub.unkIdx == 0x80) {
|
||||
func_8006376C(0x10, 0x1A, 1, D_8012CEF8[0]);
|
||||
func_8006376C(0x10, 0x1A, 1, cameraStrings[6]);
|
||||
} else if (dbCamera->sub.unkIdx == (dbCamera->sub.nPoints - 1)) {
|
||||
D_8012CEE0[7][10] = (dbCamera->sub.nPoints / 10) + '0';
|
||||
D_8012CEE0[7][11] = (dbCamera->sub.nPoints % 10) + '0';
|
||||
func_8006376C(0xF, 0x1A, 1, D_8012CEE0[7]);
|
||||
cameraStrings[7][8] = (dbCamera->sub.nPoints / 10) + '0';
|
||||
cameraStrings[7][9] = (dbCamera->sub.nPoints % 10) + '0';
|
||||
func_8006376C(0xF, 0x1A, 1, cameraStrings[7]);
|
||||
} else {
|
||||
D_8012CEE0[8][10] = ((dbCamera->sub.unkIdx + 1) / 10) + '0';
|
||||
D_8012CEE0[8][11] = ((dbCamera->sub.unkIdx + 1) % 10) + '0';
|
||||
D_8012CEE0[8][13] = ((dbCamera->sub.nPoints - 1) / 10) + '0';
|
||||
D_8012CEE0[8][14] = ((dbCamera->sub.nPoints - 1) % 10) + '0';
|
||||
func_8006376C(0xF, 0x1A, 1, D_8012CEE0[8]);
|
||||
cameraStrings[8][4] = ((dbCamera->sub.unkIdx + 1) / 10) + '0';
|
||||
cameraStrings[8][5] = ((dbCamera->sub.unkIdx + 1) % 10) + '0';
|
||||
cameraStrings[8][7] = ((dbCamera->sub.nPoints - 1) / 10) + '0';
|
||||
cameraStrings[8][8] = ((dbCamera->sub.nPoints - 1) % 10) + '0';
|
||||
func_8006376C(0xF, 0x1A, 1, cameraStrings[8]);
|
||||
}
|
||||
|
||||
switch (dbCamera->sub.unk_08) {
|
||||
@ -1092,16 +1022,16 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) {
|
||||
case 0:
|
||||
dbCamera->unk_3C = false;
|
||||
if (dbCamera->sub.mode != 1) {
|
||||
func_8006376C(0xD, 0x18, 3, !D_80161144 ? D_8012CF04 : D_8012CF08);
|
||||
DbCamera_SetTextValue(sp104.pitch * 0.00549325f, &D_8012D0E4[11], 4);
|
||||
func_8006376C(0xF, 0x17, 3, D_8012D0E4);
|
||||
DbCamera_SetTextValue(sp104.yaw * 0.00549325f, &D_8012D0F8[11], 4);
|
||||
func_8006376C(0xF, 0x18, 3, D_8012D0F8);
|
||||
DbCamera_SetTextValue(sp104.r, &D_8012D0D4[8], 6);
|
||||
func_8006376C(0xF, 0x19, 3, D_8012D0D4);
|
||||
func_8006376C(0xD, 0x18, 3, !D_80161144 ? cameraStrings[9] : cameraStrings[10]);
|
||||
DbCamera_SetTextValue(sp104.pitch * 0.00549325f, &cameraStrings[69][6], 4);
|
||||
func_8006376C(0xF, 0x17, 3, cameraStrings[69]);
|
||||
DbCamera_SetTextValue(sp104.yaw * 0.00549325f, &cameraStrings[70][6], 4);
|
||||
func_8006376C(0xF, 0x18, 3, cameraStrings[70]);
|
||||
DbCamera_SetTextValue(sp104.r, &cameraStrings[68][5], 5);
|
||||
func_8006376C(0xF, 0x19, 3, cameraStrings[68]);
|
||||
} else {
|
||||
func_8006376C(0xE, 0x18, 3, D_8012CF0C);
|
||||
func_8006376C(0x10, 0x16, 3, D_8012CF10);
|
||||
func_8006376C(0xE, 0x18, 3, cameraStrings[11]);
|
||||
func_8006376C(0x10, 0x16, 3, cameraStrings[12]);
|
||||
sp110 = 'X';
|
||||
DbCamera_SetTextValue(temp_s6->pos.x, &sp111, 7);
|
||||
func_8006376C(0x10, 0x17, 3, &sp110);
|
||||
@ -1296,35 +1226,35 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) {
|
||||
}
|
||||
}
|
||||
|
||||
DbCamera_SetTextValue(dbCamera->sub.lookAt[dbCamera->sub.unkIdx].viewAngle, &D_8012D05C[10], 3);
|
||||
func_8006376C(0x10, 0x14, (dbCamera->sub.unk_0A == 0) ? 7 : 4, D_8012D05C);
|
||||
DbCamera_SetTextValue(dbCamera->sub.lookAt[dbCamera->sub.unkIdx].nextPointFrame, &D_8012D070[9], 3);
|
||||
func_8006376C(0x10, 0x15, (dbCamera->sub.unk_0A == 1) ? 7 : 4, D_8012D070);
|
||||
DbCamera_SetTextValue(dbCamera->sub.lookAt[dbCamera->sub.unkIdx].cameraRoll, &D_8012D084[10], 3);
|
||||
func_8006376C(0x10, 0x16, (dbCamera->sub.unk_0A == 2) ? 7 : 4, D_8012D084);
|
||||
DbCamera_SetTextValue(dbCamera->sub.lookAt[dbCamera->sub.unkIdx].viewAngle, &cameraStrings[62][10], 3);
|
||||
func_8006376C(0x0E, 0x14, (dbCamera->sub.unk_0A == 0) ? 7 : 4, cameraStrings[62]);
|
||||
DbCamera_SetTextValue(dbCamera->sub.lookAt[dbCamera->sub.unkIdx].nextPointFrame, &cameraStrings[63][10], 3);
|
||||
func_8006376C(0x0E, 0x15, (dbCamera->sub.unk_0A == 1) ? 7 : 4, cameraStrings[63]);
|
||||
DbCamera_SetTextValue(dbCamera->sub.lookAt[dbCamera->sub.unkIdx].cameraRoll, &cameraStrings[64][10], 3);
|
||||
func_8006376C(0x0E, 0x16, (dbCamera->sub.unk_0A == 2) ? 7 : 4, cameraStrings[64]);
|
||||
func_8006376C(0xF, 0x17, (dbCamera->sub.unk_0A == 3) ? 7 : 4,
|
||||
(dbCamera->sub.mode == 1) ? D_8012CF14
|
||||
: (dbCamera->sub.mode == 0) ? *D_8012CF18
|
||||
: D_8012CFB0);
|
||||
(dbCamera->sub.mode == 1) ? cameraStrings[13]
|
||||
: (dbCamera->sub.mode == 0) ? cameraStrings[14]
|
||||
: cameraStrings[52]);
|
||||
if (dbCamera->sub.unk_0C) {
|
||||
D_8012D05C[80] = '>';
|
||||
cameraStrings[66][0] = '>';
|
||||
} else {
|
||||
D_8012D05C[80] = '<';
|
||||
cameraStrings[66][0] = '<';
|
||||
}
|
||||
|
||||
D_8012D05C[81] = ' ';
|
||||
D_8012D05C[94] = ' ';
|
||||
cameraStrings[66][1] = ' ';
|
||||
cameraStrings[66][9] = ' ';
|
||||
|
||||
if (dbCamera->sub.unk_0C) {
|
||||
D_8012D05C[95] = '>';
|
||||
cameraStrings[66][10] = '>';
|
||||
} else {
|
||||
D_8012D05C[95] = '<';
|
||||
cameraStrings[66][10] = '<';
|
||||
}
|
||||
D_8012D05C[96] = '\0';
|
||||
func_8006376C(0xF, 0x18, (dbCamera->sub.unk_0A == 4) ? 7 : 4, D_8012D0AC);
|
||||
DbCamera_SetTextValue(dbCamera->sub.nFrames, &D_8012D0C0[10], 5);
|
||||
cameraStrings[66][11] = '\0';
|
||||
func_8006376C(0xF, 0x18, (dbCamera->sub.unk_0A == 4) ? 7 : 4, cameraStrings[66]);
|
||||
DbCamera_SetTextValue(dbCamera->sub.nFrames, &cameraStrings[67][10], 5);
|
||||
func_8006376C(0xF, 0x19, (dbCamera->sub.unk_0A == 5) ? 7 : 4,
|
||||
(dbCamera->sub.nFrames == -1) ? *D_8012CF24 : D_8012D0C0);
|
||||
(dbCamera->sub.nFrames == -1) ? cameraStrings[17] : cameraStrings[67]);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1333,7 +1263,7 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) {
|
||||
((dbCamera->sub.unk_08 == 1) && (dbCamera->sub.unk_0A == 4) && !D_80161144) ? 7
|
||||
: !D_80161144 ? 4
|
||||
: 3,
|
||||
D_8012CF30);
|
||||
cameraStrings[20]);
|
||||
sp110 = 'X';
|
||||
DbCamera_SetTextValue(dbCamera->at.x, &sp111, 6);
|
||||
func_8006376C(3, 0x17, 2, &sp110);
|
||||
@ -1347,7 +1277,7 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) {
|
||||
((dbCamera->sub.unk_08 == 1) && (dbCamera->sub.unk_0A == 4) && D_80161144) ? 7
|
||||
: D_80161144 ? 4
|
||||
: 3,
|
||||
D_8012CF34);
|
||||
cameraStrings[21]);
|
||||
sp110 = 'X';
|
||||
DbCamera_SetTextValue(dbCamera->eye.x, &sp111, 6);
|
||||
func_8006376C(0x1E, 0x17, 2, &sp110);
|
||||
@ -1358,33 +1288,32 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) {
|
||||
DbCamera_SetTextValue(dbCamera->eye.z, &sp111, 6);
|
||||
func_8006376C(0x1E, 0x19, 2, &sp110);
|
||||
} else {
|
||||
if (D_8012CEE0[0]) {}
|
||||
OLib_Vec3fDiffToVecSphGeo(&spFC, sp90, sp7C);
|
||||
spFC.yaw -= cam->playerPosRot.rot.y;
|
||||
func_8006376C(3, 0x16,
|
||||
((dbCamera->sub.unk_08 == 1) && (dbCamera->sub.unk_0A == 4) && !D_80161144) ? 7
|
||||
: !D_80161144 ? 4
|
||||
: 3,
|
||||
D_8012CF30);
|
||||
DbCamera_SetTextValue(spFC.pitch * 0.00549325f, &D_8012D0E4[10], 4);
|
||||
func_8006376C(3, 0x17, 3, D_8012D0E4);
|
||||
DbCamera_SetTextValue(spFC.yaw * 0.00549325f, &D_8012D0F8[10], 4);
|
||||
func_8006376C(3, 0x18, 3, D_8012D0F8);
|
||||
DbCamera_SetTextValue(spFC.r, &D_8012D0D4[7], 6);
|
||||
func_8006376C(3, 0x19, 3, D_8012D0D4);
|
||||
cameraStrings[20]);
|
||||
DbCamera_SetTextValue(spFC.pitch * 0.00549325f, &cameraStrings[69][5], 4);
|
||||
func_8006376C(3, 0x17, 3, cameraStrings[69]);
|
||||
DbCamera_SetTextValue(spFC.yaw * 0.00549325f, &cameraStrings[70][5], 4);
|
||||
func_8006376C(3, 0x18, 3, cameraStrings[70]);
|
||||
DbCamera_SetTextValue(spFC.r, &cameraStrings[68][5], 5);
|
||||
func_8006376C(3, 0x19, 3, cameraStrings[68]);
|
||||
OLib_Vec3fDiffToVecSphGeo(&spFC, sp90, sp80);
|
||||
spFC.yaw -= cam->playerPosRot.rot.y;
|
||||
func_8006376C(0x1E, 0x16,
|
||||
((dbCamera->sub.unk_08 == 1) && (dbCamera->sub.unk_0A == 4) && D_80161144) ? 7
|
||||
: D_80161144 ? 4
|
||||
: 3,
|
||||
D_8012CF34);
|
||||
DbCamera_SetTextValue(spFC.pitch * 0.00549325f, &D_8012D0E4[10], 4);
|
||||
func_8006376C(0x1C, 0x17, 3, D_8012D0E4);
|
||||
DbCamera_SetTextValue(spFC.yaw * 0.00549325f, &D_8012D0F8[10], 4);
|
||||
func_8006376C(0x1C, 0x18, 3, D_8012D0F8);
|
||||
DbCamera_SetTextValue(spFC.r, &D_8012D0D4[7], 6);
|
||||
func_8006376C(0x1C, 0x19, 3, D_8012D0D4);
|
||||
cameraStrings[21]);
|
||||
DbCamera_SetTextValue(spFC.pitch * 0.00549325f, &cameraStrings[69][5], 4);
|
||||
func_8006376C(0x1C, 0x17, 3, cameraStrings[69]);
|
||||
DbCamera_SetTextValue(spFC.yaw * 0.00549325f, &cameraStrings[70][5], 4);
|
||||
func_8006376C(0x1C, 0x18, 3, cameraStrings[70]);
|
||||
DbCamera_SetTextValue(spFC.r, &cameraStrings[68][5], 5);
|
||||
func_8006376C(0x1C, 0x19, 3, cameraStrings[68]);
|
||||
}
|
||||
|
||||
DebugDisplay_AddObject(dbCamera->at.x, dbCamera->at.y + 1.0f, dbCamera->at.z, 0, 0, 0, 0.02f, 2.0f, 0.02f,
|
||||
@ -1429,11 +1358,11 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) {
|
||||
dbCamera->unk_38 = -1;
|
||||
}
|
||||
|
||||
func_8006376C(0xE, 5, 0, D_8012CF38);
|
||||
func_8006376C(9, 6, (dbCamera->unk_78 == 0) ? 7 : 4, D_8012CFD0);
|
||||
func_8006376C(0x11, 6, (dbCamera->unk_78 == 1) ? 7 : 4, D_8012CFE4);
|
||||
func_8006376C(0x18, 6, (dbCamera->unk_78 == 2) ? 7 : 4, D_8012CFF8);
|
||||
func_8006376C(3, 0x16, D_80161144 ? 3 : 4, D_8012CF30);
|
||||
func_8006376C(0xE, 5, 0, cameraStrings[22]);
|
||||
func_8006376C(9, 6, (dbCamera->unk_78 == 0) ? 7 : 4, cameraStrings[55]);
|
||||
func_8006376C(0x11, 6, (dbCamera->unk_78 == 1) ? 7 : 4, cameraStrings[56]);
|
||||
func_8006376C(0x18, 6, (dbCamera->unk_78 == 2) ? 7 : 4, cameraStrings[57]);
|
||||
func_8006376C(3, 0x16, D_80161144 ? 3 : 4, cameraStrings[20]);
|
||||
sp110 = 'X';
|
||||
DbCamera_SetTextValue(dbCamera->at.x, &sp111, 6);
|
||||
func_8006376C(3, 0x17, 2, &sp110);
|
||||
@ -1443,7 +1372,7 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) {
|
||||
sp110 = 'Z';
|
||||
DbCamera_SetTextValue(dbCamera->at.z, &sp111, 6);
|
||||
func_8006376C(3, 0x19, 2, &sp110);
|
||||
func_8006376C(0x1E, 0x16, D_80161144 ? 4 : 3, D_8012CF34);
|
||||
func_8006376C(0x1E, 0x16, D_80161144 ? 4 : 3, cameraStrings[21]);
|
||||
sp110 = 'X';
|
||||
DbCamera_SetTextValue(dbCamera->eye.x, &sp111, 6);
|
||||
func_8006376C(0x1E, 0x17, 2, &sp110);
|
||||
@ -1453,17 +1382,17 @@ void DbCamera_Update(DbCamera* dbCamera, Camera* cam) {
|
||||
sp110 = 'Z';
|
||||
DbCamera_SetTextValue(dbCamera->eye.z, &sp111, 6);
|
||||
func_8006376C(0x1E, 0x19, 2, &sp110);
|
||||
func_8006376C(0xD, 0x18, 3, !D_80161144 ? D_8012CF04 : D_8012CF08);
|
||||
DbCamera_SetTextValue(sp104.pitch * 0.00549325f, &D_8012D0E4[11], 4);
|
||||
func_8006376C(0xF, 0x17, 3, D_8012D0E4);
|
||||
DbCamera_SetTextValue(sp104.yaw * 0.00549325f, &D_8012D0F8[11], 4);
|
||||
func_8006376C(0xF, 0x18, 3, D_8012D0F8);
|
||||
DbCamera_SetTextValue(sp104.r, &D_8012D0D4[8], 6);
|
||||
func_8006376C(0xF, 0x19, 3, D_8012D0D4);
|
||||
func_8006376C(0xD, 0x18, 3, !D_80161144 ? cameraStrings[9] : cameraStrings[10]);
|
||||
DbCamera_SetTextValue(sp104.pitch * 0.00549325f, &cameraStrings[69][6], 4);
|
||||
func_8006376C(0xF, 0x17, 3, cameraStrings[69]);
|
||||
DbCamera_SetTextValue(sp104.yaw * 0.00549325f, &cameraStrings[70][6], 4);
|
||||
func_8006376C(0xF, 0x18, 3, cameraStrings[70]);
|
||||
DbCamera_SetTextValue(sp104.r, &cameraStrings[68][5], 5);
|
||||
func_8006376C(0xF, 0x19, 3, cameraStrings[68]);
|
||||
if (dbCamera->unk_3C) {
|
||||
func_8006376C(0x10, 0x1A, 1, D_8012CF3C);
|
||||
func_8006376C(0x0F, 0x1A, 1, cameraStrings[23]);
|
||||
} else {
|
||||
func_8006376C(0x10, 0x1A, 1, D_8012CF40);
|
||||
func_8006376C(0x0F, 0x1A, 1, cameraStrings[24]);
|
||||
}
|
||||
|
||||
D_8012D110++;
|
||||
@ -1726,10 +1655,6 @@ void DbCamera_PrintAllCuts(Camera* cam) {
|
||||
osSyncPrintf("@@@\n@@@\n@@@/* ****** spline point data ** finish! ***** */\n@@@\n");
|
||||
}
|
||||
|
||||
char D_8012D114[] = GFXP_KATAKANA "フレ-ム ";
|
||||
char D_8012D128[] = GFXP_KATAKANA "ト-タル ";
|
||||
char D_8012D13C[] = GFXP_KATAKANA "キ- / ";
|
||||
|
||||
s32 func_800B91B0(Camera* cam, DbCamera* dbCamera) {
|
||||
s32 pointCount;
|
||||
s32 curPoint;
|
||||
@ -1751,16 +1676,16 @@ s32 func_800B91B0(Camera* cam, DbCamera* dbCamera) {
|
||||
!func_800BB2B4(&sDbCamAnim.lookAtPos, &sDbCamAnim.roll, &sDbCamAnim.fov, sDbCameraCuts[D_8016110C].lookAt,
|
||||
&sDbCamAnim.keyframe, &sDbCamAnim.curFrame)) {
|
||||
|
||||
D_8012D13C[7] = ((sDbCamAnim.keyframe + 1) / 10) + '0';
|
||||
D_8012D13C[8] = ((sDbCamAnim.keyframe + 1) % 10) + '0';
|
||||
D_8012D13C[10] = ((sDbCameraCuts[D_8016110C].nPoints - 5) / 10) + '0';
|
||||
D_8012D13C[11] = ((sDbCameraCuts[D_8016110C].nPoints - 5) % 10) + '0';
|
||||
DbCamera_SetTextValue(sDbCamAnim.unk_04, &D_8012D114[10], 4);
|
||||
func_8006376C(0xF, 0x16, 3, D_8012D114);
|
||||
DbCamera_SetTextValue(sDbCamAnim.unk_0C, &D_8012D128[10], 4);
|
||||
func_8006376C(0xF, 0x17, 3, D_8012D128);
|
||||
func_8006376C(0xF, 0x18, 3, D_8012D13C);
|
||||
func_8006376C(0x10, 0x1A, 1, D_8012CEF0);
|
||||
cameraStrings[73][7] = ((sDbCamAnim.keyframe + 1) / 10) + '0';
|
||||
cameraStrings[73][8] = ((sDbCamAnim.keyframe + 1) % 10) + '0';
|
||||
cameraStrings[73][10] = ((sDbCameraCuts[D_8016110C].nPoints - 5) / 10) + '0';
|
||||
cameraStrings[73][11] = ((sDbCameraCuts[D_8016110C].nPoints - 5) % 10) + '0';
|
||||
DbCamera_SetTextValue(sDbCamAnim.unk_04, &cameraStrings[71][10], 4);
|
||||
func_8006376C(0xF, 0x16, 3, cameraStrings[71]);
|
||||
DbCamera_SetTextValue(sDbCamAnim.unk_0C, &cameraStrings[72][10], 4);
|
||||
func_8006376C(0xF, 0x17, 3, cameraStrings[72]);
|
||||
func_8006376C(0xF, 0x18, 3, cameraStrings[73]);
|
||||
func_8006376C(0x10, 0x1A, 1, cameraStrings[4]);
|
||||
|
||||
sDbCamAnim.unk_04++;
|
||||
sDbCamAnim.unk_0C++;
|
||||
@ -1835,7 +1760,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
||||
VecSph sp5C;
|
||||
s32 (*callbacks[])(char*) = { DbCamera_SaveCallback, DbCamera_LoadCallback, DbCamera_ClearCallback };
|
||||
|
||||
func_8006376C(0xE, 5, 0, D_8012CF44); // DEMO CONTROL
|
||||
func_8006376C(0xE, 5, 0, cameraStrings[25]); // DEMO CONTROL
|
||||
|
||||
idx1 = sCurFileIdx >> 1;
|
||||
idx2 = sLastFileIdx >> 1;
|
||||
@ -1856,13 +1781,13 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
||||
&D_801333E8);
|
||||
dbCamera->sub.demoCtrlToggleSwitch ^= 1;
|
||||
}
|
||||
D_8012CEE0[41][9] = sCurFileIdx + 'A';
|
||||
func_8006376C(0xA, 7, 5, D_8012CEE0[41]);
|
||||
func_8006376C(0x10, 7, 5, D_8012CF60[dbCamera->sub.demoCtrlActionIdx]);
|
||||
func_8006376C(0x14, 7, 5, D_8012CF88[0]);
|
||||
cameraStrings[41][9] = sCurFileIdx + 'A';
|
||||
func_8006376C(0xA, 7, 5, cameraStrings[41]);
|
||||
func_8006376C(0x10, 7, 5, cameraStrings[dbCamera->sub.demoCtrlActionIdx + 32]);
|
||||
func_8006376C(0x14, 7, 5, cameraStrings[42]);
|
||||
|
||||
func_8006376C(0x11, 8, dbCamera->sub.demoCtrlToggleSwitch ? 4 : 7, D_8012CF94);
|
||||
func_8006376C(0x15, 8, dbCamera->sub.demoCtrlToggleSwitch ? 7 : 4, D_8012CF98);
|
||||
func_8006376C(0x11, 8, dbCamera->sub.demoCtrlToggleSwitch ? 4 : 7, cameraStrings[45]);
|
||||
func_8006376C(0x15, 8, dbCamera->sub.demoCtrlToggleSwitch ? 7 : 4, cameraStrings[46]);
|
||||
|
||||
if (CHECK_BTN_ALL(sPlayState->state.input[2].press.button, BTN_A)) {
|
||||
if (dbCamera->sub.demoCtrlToggleSwitch == 0) {
|
||||
@ -1880,9 +1805,9 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
||||
dbCamera->sub.demoCtrlMenu++;
|
||||
} else {
|
||||
dbCamera->sub.demoCtrlToggleSwitch ^= 1;
|
||||
D_8012CF84[9] = sCurFileIdx + 'A';
|
||||
func_8006376C(0xD, 7, 5, D_8012CF88[-1]); // todo: find something better
|
||||
func_8006376C(0x12, 7, 5, D_8012CF80);
|
||||
cameraStrings[41][9] = sCurFileIdx + 'A';
|
||||
func_8006376C(0xD, 7, 5, cameraStrings[41]); // todo: find something better
|
||||
func_8006376C(0x12, 7, 5, cameraStrings[40]);
|
||||
func_8006376C(0xD, 9, dbCamera->sub.demoCtrlToggleSwitch ? 1 : 6, "PRESS B BUTTON");
|
||||
}
|
||||
}
|
||||
@ -1897,12 +1822,12 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
||||
case DEMO_CTRL_MENU(ACTION_SAVE, MENU_CALLBACK):
|
||||
case DEMO_CTRL_MENU(ACTION_LOAD, MENU_CALLBACK):
|
||||
case DEMO_CTRL_MENU(ACTION_CLEAR, MENU_CALLBACK): {
|
||||
D_8012CEE0[41][9] = sCurFileIdx + 'A';
|
||||
func_8006376C(0xC, 7, 5, D_8012CEE0[41]);
|
||||
func_8006376C(0x12, 7, 5, D_8012CF60[dbCamera->sub.demoCtrlActionIdx]);
|
||||
func_8006376C(0x16, 7, 5, D_8012CF9C[0]);
|
||||
cameraStrings[41][9] = sCurFileIdx + 'A';
|
||||
func_8006376C(0xC, 7, 5, cameraStrings[41]);
|
||||
func_8006376C(0x12, 7, 5, cameraStrings[dbCamera->sub.demoCtrlActionIdx + 32]);
|
||||
func_8006376C(0x16, 7, 5, cameraStrings[47]);
|
||||
|
||||
if (callbacks[dbCamera->sub.demoCtrlActionIdx - 1](&D_8012CF84[9])) {
|
||||
if (callbacks[dbCamera->sub.demoCtrlActionIdx - 1](&cameraStrings[41][9])) {
|
||||
dbCamera->sub.demoCtrlMenu++;
|
||||
return 1;
|
||||
} else {
|
||||
@ -1915,10 +1840,10 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
||||
case DEMO_CTRL_MENU(ACTION_LOAD, MENU_SUCCESS):
|
||||
case DEMO_CTRL_MENU(ACTION_CLEAR, MENU_SUCCESS): {
|
||||
dbCamera->sub.demoCtrlToggleSwitch ^= 1;
|
||||
D_8012CEE0[41][9] = sCurFileIdx + 'A';
|
||||
func_8006376C(0xD, 7, 5, D_8012CEE0[41]);
|
||||
func_8006376C(0x13, 7, 5, D_8012CF60[dbCamera->sub.demoCtrlMenu / 100]);
|
||||
func_8006376C(0x17, 7, 5, D_8012CFA4);
|
||||
cameraStrings[41][9] = sCurFileIdx + 'A';
|
||||
func_8006376C(0xD, 7, 5, cameraStrings[41]);
|
||||
func_8006376C(0x13, 7, 5, cameraStrings[(dbCamera->sub.demoCtrlMenu / 100) + 32]);
|
||||
func_8006376C(0x17, 7, 5, cameraStrings[49]);
|
||||
func_8006376C(0xD, 9, (dbCamera->sub.demoCtrlToggleSwitch != 0) ? 1 : 6, "PRESS B BUTTON");
|
||||
|
||||
if (CHECK_BTN_ALL(sPlayState->state.input[2].press.button, BTN_A) ||
|
||||
@ -1937,10 +1862,10 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
||||
case DEMO_CTRL_MENU(ACTION_LOAD, MENU_ERROR):
|
||||
case DEMO_CTRL_MENU(ACTION_CLEAR, MENU_ERROR): {
|
||||
dbCamera->sub.demoCtrlToggleSwitch ^= 1;
|
||||
D_8012CEE0[41][9] = sCurFileIdx + 'A';
|
||||
func_8006376C(0xD, 7, 5, D_8012CEE0[(dbCamera->sub.demoCtrlMenu / 100) + 32]);
|
||||
func_8006376C(0x11, 7, 5, D_8012CFAC);
|
||||
func_8006376C(0x17, 7, 5, D_8012CFA4);
|
||||
cameraStrings[41][9] = sCurFileIdx + 'A';
|
||||
func_8006376C(0xD, 7, 5, cameraStrings[(dbCamera->sub.demoCtrlMenu / 100) + 32]);
|
||||
func_8006376C(0x11, 7, 5, cameraStrings[51]);
|
||||
func_8006376C(0x17, 7, 5, cameraStrings[49]);
|
||||
func_8006376C(0xD, 9, (dbCamera->sub.demoCtrlToggleSwitch != 0) ? 1 : 6, "PRESS B BUTTON");
|
||||
|
||||
if (CHECK_BTN_ALL(sPlayState->state.input[2].press.button, BTN_A) ||
|
||||
@ -2013,30 +1938,30 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
||||
}
|
||||
}
|
||||
idx3 = dbCamera->sub.demoCtrlActionIdx;
|
||||
func_8006376C(0xE, 7, 5, D_8012CF50[idx3]);
|
||||
func_8006376C(0xE, 7, 5, cameraStrings[idx3 + 28]);
|
||||
func_8006376C(0xF, 7, 4, sp74);
|
||||
|
||||
func_8006376C((sCurFileIdx * 2) + 0x10, 7, 7, "_"); // cursor
|
||||
DbCamera_SetTextValue(DbCamera_GetMempakAllocSize(), sp74, 6);
|
||||
func_8006376C(0xD, 9, 6, D_8012CF78); // NEED BYTE
|
||||
func_8006376C(0xD, 9, 6, cameraStrings[38]); // NEED BYTE
|
||||
func_8006376C(0x11, 9, 4, sp74);
|
||||
DbCamera_SetTextValue(Mempak_GetFreeBytes(2), sp74, 6);
|
||||
func_8006376C(0xD, 0xA, 6, D_8012CF74); // FREE BYTE
|
||||
func_8006376C(0xD, 0xA, 6, cameraStrings[37]); // FREE BYTE
|
||||
func_8006376C(0x11, 0xA, 4, sp74);
|
||||
if (sMempakFilesize != 0) {
|
||||
DbCamera_SetTextValue(sMempakFilesize, sp74, 6);
|
||||
func_8006376C(0xD, 0xB, 7, D_8012CFA8);
|
||||
func_8006376C(0xD, 0xB, 7, cameraStrings[50]);
|
||||
func_8006376C(0x11, 0xB, 4, sp74);
|
||||
}
|
||||
|
||||
idx1 = (dbCamera->sub.demoCtrlActionIdx + 2);
|
||||
func_8006376C(0xF, 0x16, 1, D_8012CF7C);
|
||||
func_8006376C(0x12, 0x17, sDbCameraColors[idx1], D_8012CF64);
|
||||
func_8006376C(0x12, 0x18, sDbCameraColors[idx1 - 1], D_8012CF68);
|
||||
func_8006376C(0x12, 0x19, sDbCameraColors[idx1 - 2], D_8012CF6C);
|
||||
func_8006376C(0xE, dbCamera->sub.demoCtrlActionIdx + 0x16, 7, D_8012CF0C); // current selection
|
||||
func_8006376C(0xD, 0x1A, 5, D_8012CF60[0]);
|
||||
func_8006376C(0x14, 0x1A, 5, D_8012CF70);
|
||||
func_8006376C(0xF, 0x16, 1, cameraStrings[39]);
|
||||
func_8006376C(0x12, 0x17, sDbCameraColors[idx1], cameraStrings[33]);
|
||||
func_8006376C(0x12, 0x18, sDbCameraColors[idx1 - 1], cameraStrings[34]);
|
||||
func_8006376C(0x12, 0x19, sDbCameraColors[idx1 - 2], cameraStrings[35]);
|
||||
func_8006376C(0xE, dbCamera->sub.demoCtrlActionIdx + 0x16, 7, cameraStrings[11]); // current selection
|
||||
func_8006376C(0xD, 0x1A, 5, cameraStrings[32]);
|
||||
func_8006376C(0x14, 0x1A, 5, cameraStrings[36]);
|
||||
|
||||
if (CHECK_BTN_ALL(sPlayState->state.input[2].press.button, BTN_DUP)) {
|
||||
Audio_PlaySoundGeneral(NA_SE_SY_CURSOR, &D_801333D4, 4, &D_801333E0, &D_801333E0,
|
||||
@ -2063,8 +1988,8 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
||||
}
|
||||
goto block_2;
|
||||
} else {
|
||||
func_8006376C(0xC, 0x1A, 4, D_8012CF60[0]);
|
||||
func_8006376C(0x13, 0x1A, 4, D_8012CF80);
|
||||
func_8006376C(0xC, 0x1A, 4, cameraStrings[32]);
|
||||
func_8006376C(0x13, 0x1A, 4, cameraStrings[40]);
|
||||
if (CHECK_BTN_ALL(sPlayState->state.input[2].press.button, BTN_B) ||
|
||||
CHECK_BTN_ALL(sPlayState->state.input[2].press.button, BTN_DUP) ||
|
||||
CHECK_BTN_ALL(sPlayState->state.input[2].press.button, BTN_DDOWN)) {
|
||||
@ -2097,7 +2022,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
||||
DbCamera_DrawSlotLetters(sp74, 7, 5, 4);
|
||||
|
||||
if (sDbCamAnim.unk_0A != 0) {
|
||||
func_8006376C(4, 7, 5, D_8012CF4C);
|
||||
func_8006376C(4, 7, 5, cameraStrings[27]);
|
||||
func_8006376C(D_8016110C * 2 + 6, 7, 7, ">");
|
||||
|
||||
if (CHECK_BTN_ALL(sPlayState->state.input[2].press.button, BTN_CUP)) {
|
||||
@ -2203,7 +2128,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
||||
Audio_PlaySoundGeneral(NA_SE_SY_DECIDE, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
|
||||
sp74[sCurFileIdx] = DbCamera_InitCut(idx1, &dbCamera->sub);
|
||||
if (sp74[sCurFileIdx] == '?') {
|
||||
func_8006376C(0xF, 0x18, 7, D_8012CF48);
|
||||
func_8006376C(0xF, 0x18, 7, cameraStrings[26]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2281,7 +2206,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
||||
Audio_PlaySoundGeneral(NA_SE_SY_HP_RECOVER, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
|
||||
}
|
||||
|
||||
func_8006376C(4, 7, 5, D_8012CF50[0]);
|
||||
func_8006376C(4, 7, 5, cameraStrings[28]);
|
||||
sp74[1] = 0;
|
||||
if (sLastFileIdx != -1) {
|
||||
sp74[0] = D_801612EA;
|
||||
|
@ -7615,7 +7615,7 @@ Vec3s Camera_Update(Camera* camera) {
|
||||
}
|
||||
|
||||
// enable/disable debug cam
|
||||
if (CVarGetInteger("gDebugCamera", 0) && CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_START)) {
|
||||
if (CVarGetInteger("gDebugEnabled", 0) && CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_START)) {
|
||||
gDbgCamEnabled ^= 1;
|
||||
if (gDbgCamEnabled) {
|
||||
DbgCamera_Enable(&D_8015BD80, camera);
|
||||
|
Loading…
Reference in New Issue
Block a user