SuperMarioOdysseyOnline/source/debugMenu.cpp
Amethyst-szs 69d6a732c7
refac: abstracting game mode
- change: general game mode management more abstract and less H&S oriented
- change: split 8bit updateType into 4bit game mode and 4bit update type.
- change: don't process packets from other game modes (legacy mode for backwards compatibility)
- change: cache game mode of other players in puppet, resend GameModeInf on detected game mode change
- change: send gamemode NONE when H&S is selected but not active
- change: improved distance calculations in squared distance space
- change: change from hider to seeker when dead even if there are no other players
- fix: add hours to the minutes for the H&S GameModeInf packet
- fix: set milliseconds and hours when receiving time from server
- fix: keep the new time from the server for longer than a single frame
- fix: reset H&S icon after receiving a new state from the server
- refac: move code to generate PlayerList into own abstract LayoutPlayerList class.
- refac: to_string() method for GameTime to simplify code in the Game Mode Icon class.
- refac: rename TagInf packet to GameModeInf packet
- refac: remove param from `SocketClient::tryGetPacket()` (unused)
- refac: move all H&S specific files into the same directory (out of layouts)
- refac: move GameModeTimer.cpp from source/server/hns/ to source/server/gamemode/
- refac: clean up some unused, duplicate or complicated imports
- [mod menu] change: use the game mode name in the options & menu title
- [mod menu] change: select the next game mode in the game mode select menu
- [mod menu] change: possibility to always change the gravity setting in the H&S config menu
- [mod menu] add: toggle options to control mario/cappy collision/bounciness

(cherry picked from commit a9b2c87aa0)
(cherry picked from commit 918f61fbfd619d781d88dc74878d392c48cfa480)
(cherry picked from commit 96aff7dd7167d8244acef7884fa3503d4c3f868a)
(cherry picked from commit 0fb6413ec91bbf679e9f8cea1aa512159101fa46)
(cherry picked from commit ab78a812fd18781655ccf38e803f619ea427d1ac)

Co-authored-by: Robin C. Ladiges <rcl.git@blackpinguin.de>
2024-10-27 00:38:05 +02:00

50 lines
1.9 KiB
C++

#include "debugMenu.hpp"
#include "agl/utl.h"
#include "al/util.hpp"
#include "game/System/GameSystem.h"
#include "sead/gfx/seadPrimitiveRenderer.h"
#include "sead/math/seadMatrix.hpp"
static const char *DBG_FONT_PATH = "DebugData/Font/nvn_font_jis1.ntx";
static const char *DBG_SHADER_PATH = "DebugData/Font/nvn_font_shader_jis1.bin";
static const char *DBG_TBL_PATH = "DebugData/Font/nvn_font_jis1_tbl.bin";
sead::TextWriter* gTextWriter;
void setupDebugMenu(GameSystem *gSys) {
sead::Heap* curHeap = al::getCurrentHeap();
agl::DrawContext* context = gSys->mSystemInfo->mDrawInfo->mDrawContext;
if (curHeap) {
if (context) {
sead::DebugFontMgrJis1Nvn::sInstance = sead::DebugFontMgrJis1Nvn::createInstance(curHeap);
if (al::isExistFile(DBG_FONT_PATH) && al::isExistFile(DBG_SHADER_PATH) && al::isExistFile(DBG_TBL_PATH)) {
sead::DebugFontMgrJis1Nvn::sInstance->initialize(curHeap, DBG_SHADER_PATH, DBG_FONT_PATH, DBG_TBL_PATH, 0x100000);
sead::TextWriter::setDefaultFont(sead::DebugFontMgrJis1Nvn::sInstance);
gTextWriter = new sead::TextWriter(context);
gTextWriter->setupGraphics(context);
}
sead::PrimitiveDrawer drawer(context);
}
}
__asm("MOV W23, #0x3F800000");
__asm("MOV W8, #0xFFFFFFFF");
}
void drawBackground(agl::DrawContext* context) {
sead::Vector3<float> p1(-1, .3, 0); // top left
sead::Vector3<float> p2(-.2, .3, 0); // top right
sead::Vector3<float> p3(-1, -1, 0); // bottom left
sead::Vector3<float> p4(-.2, -1, 0); // bottom right
sead::Color4f c(.1, .1, .1, .9);
agl::utl::DevTools::beginDrawImm(context, sead::Matrix34<float>::ident, sead::Matrix44<float>::ident);
agl::utl::DevTools::drawTriangleImm(context, p1, p2, p3, c);
agl::utl::DevTools::drawTriangleImm(context, p3, p4, p2, c);
}