mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-12-04 17:07:29 +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>
64 lines
1.2 KiB
C
64 lines
1.2 KiB
C
#pragma once
|
|
|
|
#include "nn/account.h"
|
|
|
|
#include "types.h"
|
|
|
|
#define PACKBUFSIZE 0x30
|
|
#define COSTUMEBUFSIZE 0x20
|
|
|
|
#define MAXPACKSIZE 0x100
|
|
|
|
enum PacketType : short {
|
|
UNKNOWN,
|
|
CLIENTINIT,
|
|
PLAYERINF,
|
|
HACKCAPINF,
|
|
GAMEINF,
|
|
GAMEMODEINF,
|
|
PLAYERCON,
|
|
PLAYERDC,
|
|
COSTUMEINF,
|
|
SHINECOLL,
|
|
CAPTUREINF,
|
|
CHANGESTAGE,
|
|
CMD,
|
|
UDPINIT,
|
|
HOLEPUNCH,
|
|
End, // end of enum for bounds checking
|
|
};
|
|
|
|
// attribute otherwise the build log is spammed with unused warnings
|
|
USED static const char* packetNames[] = {
|
|
"Unknown",
|
|
"Client Initialization",
|
|
"Player Info",
|
|
"Player Cap Info",
|
|
"Game Info",
|
|
"Gamemode Info",
|
|
"Player Connect",
|
|
"Player Disconnect",
|
|
"Costume Info",
|
|
"Moon Collection",
|
|
"Capture Info",
|
|
"Change Stage",
|
|
"Server Command",
|
|
"Udp Initialization",
|
|
"Hole punch",
|
|
};
|
|
|
|
enum SenderType {
|
|
SERVER,
|
|
CLIENT,
|
|
};
|
|
|
|
enum ConnectionTypes {
|
|
INIT,
|
|
RECONNECT,
|
|
};
|
|
|
|
struct PACKED Packet {
|
|
nn::account::Uid mUserID; // User ID of the packet owner
|
|
PacketType mType = PacketType::UNKNOWN;
|
|
short mPacketSize = 0; // represents packet size without size of header
|
|
};
|