mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-12-02 07:57:30 +00:00
69d6a732c7
- 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>
98 lines
No EOL
3.5 KiB
C++
98 lines
No EOL
3.5 KiB
C++
#pragma once
|
|
|
|
#include "al/layout/LayoutActor.h"
|
|
#include "al/nerve/NerveExecutor.h"
|
|
#include "nn/ui2d/Texture.h"
|
|
#include "sead/prim/seadSafeString.h"
|
|
|
|
struct RollPartsData {
|
|
int mRollMsgCount = 0; // 0x0
|
|
const char16_t **mRollMsgList; // 0x8
|
|
int unkInt1 = 0; // 0x10
|
|
bool mUnkBool = false; // 0x14
|
|
};
|
|
|
|
class CommonVerticalList : public al::NerveExecutor {
|
|
public:
|
|
CommonVerticalList(al::LayoutActor*, al::LayoutInitInfo const&, bool);
|
|
~CommonVerticalList();
|
|
|
|
void activate(void);
|
|
void addGroupAnimData(sead::FixedSafeString<64> const*,char const*);
|
|
void addStringData(sead::WFixedSafeString<512> const*,char const*);
|
|
void appearCursor(void);
|
|
void calcAnimRate(void);
|
|
void calcCursorPos(sead::Vector2f *);
|
|
void deactivate(void);
|
|
void decide(void);
|
|
void down(void);
|
|
void endCursor(void);
|
|
void getListPartsNum(void);
|
|
void getParts(int);
|
|
void getRollPartsSelected(int);
|
|
void getSelectedParts(void);
|
|
void hideAll(void);
|
|
void hideCursor(void);
|
|
void initData(int);
|
|
void initDataNoResetSelected(int);
|
|
void initDataWithIdx(int,int,int);
|
|
void jumpBottom(void);
|
|
void jumpTop(void);
|
|
void pageDown(void);
|
|
void pageUp(void);
|
|
void reject(void);
|
|
void rollLeft(void);
|
|
void rollRight(void);
|
|
void setEnableData(bool const*);
|
|
void setImageData(nn::ui2d::TextureInfo **,char const*);
|
|
void setRollPartsData(RollPartsData *);
|
|
void setRollPartsSelected(int,int);
|
|
void setSelectedIdx(int,int);
|
|
void startLoopActionAll(char const*,char const*);
|
|
void up(void);
|
|
void update(void);
|
|
void updateCursorPos(void);
|
|
void updateParts(void);
|
|
|
|
bool isActive(void) const;
|
|
bool isDeactive(void) const;
|
|
bool isDecideEnd(void) const;
|
|
bool isRejectEnd(void) const;
|
|
|
|
void exeActive(void);
|
|
void exeDeactive(void);
|
|
void exeDecide(void);
|
|
void exeDecideEnd(void);
|
|
void exeReject(void);
|
|
void exeRejectEnd(void);
|
|
|
|
al::LayoutActor *mRootActor; // 0x10
|
|
void *unkPtr1; // 0x18
|
|
void *mListPartsArr; // 0x20
|
|
struct CursorParts *mCursorParts; // 0x28
|
|
struct ScrollBarParts *mScrollBarParts; // 0x30
|
|
int mListPartsNum; // 0x38
|
|
int mCurSelected; // 0x3C
|
|
int mIdx; // 0x40
|
|
void *unkPtr2; // 0x48
|
|
void *unkPtr3; // 0x50
|
|
sead::Vector2f mCursorPos; // 0x58
|
|
void *unkPtr4; // 0x60
|
|
int unkInt1; // 0x68
|
|
sead::WFixedSafeString<0x200> **mStringDataArr; // 0x70
|
|
sead::FixedSafeString<0x90> **mPaneNameList; // 0x78
|
|
void *unkPtr8; // 0x80
|
|
void *unkPtr9; // 0x88
|
|
const bool *mIsEnableData; // 0x90
|
|
int mStringDataCount; // 0x98
|
|
int mDataCount; // 0x9C
|
|
void *unkPtr12; // 0xA0
|
|
void *unkPtr13; // 0xA8
|
|
void *unkPtr14; // 0xB0
|
|
void *unkPtr15; // 0xB8
|
|
void* RollPartsArr; // 0xC0
|
|
void* unkPtrX; // 0xC8
|
|
|
|
};
|
|
|
|
static_assert(sizeof(CommonVerticalList) == 0xD0, "CommonVerticalList size"); |