As 7.2 is releasing next week, it would be nice for the patch server to double
check the user has the correct version of the game. Now the patch server rejects
clients that have too new of a version.
Now the world isn't hardcoded to Gilgamesh, and is configurable. It's also now
the "Dev" server listed in the excel sheet which makes a more sensible default.
My old setup of throwing *all* of the IPC types and opcodes into *one* enum was
becoming unbearable. Now that we have multiple things using the same opcodes
(because they can overlap) I think it's time to repay this technical debt.
This overhauls the structure of the project to move IPC structs into their own
modules, and separate the opcode data/lists into separate ones depending on if
it's clientbound and serverbound.
Nothing has changed functionall, but this is going to make it way easier to add
more IPC in the future.
This doesn't really fix anything functionally, but makes the Character window
look nicer. The same (currently unchangable) data is now reflected in the lobby.
The current situation of throw-every-piece-of-logic-into-one-file for each
server isn't working out. So now there is a new ZoneConnection/LobbyConnection
struct that will be delegating tasks to their own Handlers (for example, there
could be a ChatHandler.)
I'm not sure how well this architecture will scale, but it's better than what
we have right now.
I apparently had a few fields missing here. Also just some general clean up,
make it the same looking character in both the Lobby and World server. I also
chose Gridania as the test zone.
This is a slightly modified version of the one in Physis, with the required
modifications inspired from WorkingRobot's TemporalStatis fork. Thanks so much!