Both sides of this message uses QUERY_CHARACTER_EXISTS because I'm just
trying to push forward, without worrying about mistakes I might be making.
I just want to merge this back into the main branch so I can say that I've
actually done something over the last few months.
* Fleshed out the ClientManager internals
* Folded some ServerApplication methods into ClientManager
* Removed Manager references from ServerApplication
* Corrected server_methods.cpp (compiles)
You can set the file to read as the config file via the command line, like
this, assuming the program supports it:
prog -config=file.cfg
You can also override indevidual key-value pairs in the config system
using this syntax:
prog -Ckey=value
Both commands can be used together, and you can override multiple
key-value pairs at once. To use this feature of the ConfigUtility, it must
receive argc and argv as parameters to the Load() method.
The server's changes were easy. The clients means that the constructors
for each scene have one less argument, and each scene has one less member.
The exception to this is LobbyMenu, where the config is used in multiple
places, so it was easier to have the config's reference as a member.
To replace the config's usage, I added this line in most cases:
ConfigUtility& config = ConfigUtility::GetSingleton();
The only requirement is that ConfigUtility::Create() and
ConfigUtility::Delete() are called from the main() function.
There is some missing character creation/unloading code, and there are a
few other issues highlighted by TODO tags, see below.
In general, 'mapIndex' has been renamed to 'roomIndex'. Multiple rooms
have not been fully implemented yet, but I'm working on it.
Other issues:
* FileFormat needs to be changed to MapLoader
* Server's character movement is still slaved to the clients
The client does not build.
Here are more tweaks:
* InWorld's quit event now exits to the main menu, bypassing a relayed disconnect message
* InWorld's disconnect hander no longer throws exceptions (dropped creation packet bugfix)
* CombatData's internals now point to std::pair objects
* Enemies are stored in a global list
Deleted in the merge:
* combat_management.cpp
* todo.txt
Amended in the merge:
* server/enemy_factory_interface.hpp
* server/server_application.hpp
* server/server_internals.cpp
That version of combat_management.cpp was not what I was looking for. I'll
try again, this time by working my way down from SerialPacket. It's worked
in the past as far as establishing a standard goes.
todo.txt was deleted in this commit, but will be carried over into the
next develop branch.
I'll release a new demo build without changing the version number, since
there are no functional changes.
This has been a long-running problem for days, but I've finally
implemented a correctly working hierarchy between the ClientData,
AccountData and CharacterData objects:
CharacterData -> AccountData -> ClientData
There doesn't seem to be any issues with it right now, touch wood.
* There seems to be something iffy with this branch
* The size of SerialPacket may have changed
I've implemented the accountIndex variable as best I can, but I really
shouldn't code at night. I'll need to go over the changes again before
merging this.