still a lot of stuff to fix before everything works as it should. compilation works, linking produces errors. most code cleanups done.
238 lines
11 KiB
Plaintext
238 lines
11 KiB
Plaintext
/////////////////////////////////////////////////////////////
|
||
// PseuWoW changelog // date|time: 20:31 11.12.2006 /////////
|
||
/////////////////////////////////////////////////////////////
|
||
//Format:
|
||
// + added
|
||
// - note
|
||
// % removed
|
||
// ! important
|
||
// O ToDo: open, not yet done
|
||
// x Todo: done
|
||
/////////////////////////////////////////////////////////////
|
||
|
||
|
||
|
||
ToDo (Overall):
|
||
================
|
||
|
||
- simulation of no installed addons
|
||
- more config possibilities in conf/pseuwow.conf
|
||
- redo controller related code and recode controller
|
||
- character creation - to be able to create chars with names bl!zz does not allow
|
||
- remove hardcoded language names, use lang names via config
|
||
-> string table? not sure.
|
||
- ppoints system? as a workaround for maps? not sure.
|
||
- much much more i cant think of yet :P
|
||
|
||
#Far future:
|
||
- kind of an AI that it can decide for itself what to do
|
||
- add ability to use blizz/mangos maps so that it can really walk around, not only teleport
|
||
- to be continued...
|
||
- looting, 2D/3D GUI, killing,... you can extend the list as you wish
|
||
|
||
ToDo (version after: Alpha 13) / Planned Features:
|
||
==================================================
|
||
|
||
O add a ZCompressor Class (a ByteBuffer using zlib deflate/inflate)
|
||
O [maybe] first touch with the UpdateFields (CMSG[_COMPRESSED]_UPDATE_OBJECT)
|
||
O [maybe] add Object/Unit/Player/Creature/... classes.
|
||
X cleanups to VarSet class (use vectors to store the vars)
|
||
O cleanups to DefScript class: use vectors to store the script text data
|
||
O DefScript: instead of only ${var} also be able to use $var like in TCL or PHP
|
||
O Implement threaded movement system. tracking of player's waypoints, better following code
|
||
(that does NOT tend to crash mangos!)
|
||
O improve chat AI? add other AI? not sure.
|
||
O logfile output
|
||
[...]
|
||
|
||
|
||
ToDo (next version: Alpha 12) / Planned features:
|
||
=================================================
|
||
|
||
X lots of general code cleanups (remove old C functions from PseuWoW Alpha 7 and before;
|
||
add objects: PseuInstance, RealmSession, WorldSession, ...; drop the old procedurel code)
|
||
X opcode handler table, no more case x case y case z
|
||
O move code portions of the chat handler to an external ChatAI.cpp file and improve
|
||
the chat AI
|
||
O -> implement a WordList class to parse sentences
|
||
O a direct local console (like mangos has). drop plans about a remote controller for now.
|
||
O lots of bugfixes to the DefScript system
|
||
X implement zthread, zlib and remove the SDL thread functions.
|
||
X change the network system from SDL_net to the system by Anders Hedstrom (the one mangos uses). no more packet errors (i hope)!
|
||
O DefScript: implement a "PermissionMap" to set by the user (for internal funcions)
|
||
O config options: EnableIngameCommands, EnableLocalConsole, OverrideLoginGuid (dangerous!),
|
||
AutoReconnect,
|
||
|
||
O DefScript fuctions: "GetGuid,var playername", "GetName,var GUID"
|
||
X add WorldPacket class
|
||
X -> add uint64 WorldPacket::GetPackedGUID()
|
||
X fix the packed GUID code if needed (not sure if its really bugged)
|
||
|
||
O When everything is done: upload to openSVN!
|
||
|
||
|
||
20:43 09.11.2006 Alpha Build 11
|
||
=====================================
|
||
|
||
+ inluded modified WAD's TrayWoWemu.exe to work with PseuWoW -> TrayPseuWoW.exe =)
|
||
|
||
Core:
|
||
! connecting to servers running versions above 1.10.2 is now possible!
|
||
+ implemented player name cache, first touch with std::vector<> :)
|
||
-> players get added to the cache as soon as they move or say something
|
||
-> chat messages now show player names, whispers can be sent now.
|
||
-> related command: [-]savecache.
|
||
+ commands can now given directly ingame saying/whispering "-command" to PseuWoW
|
||
+ added DefScript functions _onwhisper (gets triggered when a player whispers to PseuWoW),
|
||
emote #id. the emote function still needs to be fixed and linked with targeting once
|
||
implemented.
|
||
+ included reply.def, that uses the above macros and whisper.def. use: reply to last whisp
|
||
in its original language
|
||
% removed some old obsoelete cpp files
|
||
% removed the old config reader, replaced with dynamic reader using the classes
|
||
VarSet, std::string, DefScript.
|
||
+ added CMSG_PING and SMSG_PONG (ping every 30 sec, like original WoW)
|
||
+ better detection if PseuWoW entered the world successfully
|
||
+ added macros: @thiswhisper,@lastwhisper,@thiscmd,@lastcmd,@thismsg,@lastmsg and related.
|
||
+ following a player: simply repeat movement opcodes recieved from that player.
|
||
looks very shitty and is very buggy xD
|
||
-> command/usage: [-]follow PlayerName to start, just [-]follow to stop.
|
||
+ you can access all values set in PseuWoW.conf as CAPITALIZED variables, e.g.:
|
||
"${REALMLIST}" or ingame "-sayv REALMLIST".
|
||
+ once the conf is loaded the script "_setconf" is executed, this removes dangerous vars
|
||
like ACCNAME and ACCPASS
|
||
+ auto-decline of group-invite and trade attempts
|
||
!+ added support for packed GUIDs
|
||
+ added def files: outv, sayv, _nopermission, _setconf
|
||
|
||
|
||
|
||
DefScript engine:
|
||
- renewed variable handler (renaming *local* var to scriptname::var, #var to var,
|
||
@var stays @var)
|
||
- fixed lots of bugs in the ReplaceVars() function.
|
||
- fixed a little bug in the script loader (wrongly loaded lines beginning with '#')
|
||
+ added a permission system for scripts called by players. use users.conf to set.
|
||
(like that its not possible for non-GMs to execute "-say .shutdown" or similar)
|
||
|
||
|
||
|
||
17:23 06.10.2006 Alpha Build 10
|
||
===================================
|
||
+ FULLY working script engine with C++ interface, only very few functions implemented yet.
|
||
Dynamic loading: Scripts get only loaded if they are needed.
|
||
+ preparations to stop using C malloc/realloc/free and replace it with NEW,
|
||
also std::string instead of char*
|
||
+ PseuWoW can recieve whisper/say/party/guild/server messages, but not yet link them
|
||
to a name.
|
||
+ improved packet error/order handling, there are still some packets that get lost,
|
||
i need to find out where they go. SDL thread issue?
|
||
% removed yelling PseuWoW version on startup. Use the ./scripts/_worldenter.def script
|
||
file to modify behaviour when entering the world.
|
||
- PseuWoW can now detect if it has sent a chatmessage itself or if it came from someone else
|
||
- added a little fun code and a VERY "basic" chat AI for fun :P
|
||
- it will say a note if it is sure it has entered the world correctly. it might have been
|
||
successful anyway even without it, but at least you can be sure when it will probably work.
|
||
requires "SAY ${@version}" in scripts/_enterworld.def
|
||
|
||
|
||
18:15 10.09.2006 Alpha Build 9
|
||
===============================
|
||
+ Added CircularBuffer class for world packet reciever
|
||
+ Added SDLTCPConnection class for easier connectivity and code readability
|
||
- first preparations for builtin script engine, still excluded from build,
|
||
needs cleanups and fixes.
|
||
-> coded the variable handler
|
||
-> coded the script loader
|
||
-> coded the script line tokenizer
|
||
+ Added connection to world server
|
||
+ World Authentication done
|
||
% removed old rs_... / ws_... functions, replaced with SDLTCPConnection realmCon/worldCon
|
||
% disabled the controller interface for now. it will be included again as soon as the
|
||
script interpreter works and everything has been cleaned up.
|
||
+ Integrated AuthCrypt class from mangos
|
||
+ CHAR_ENUM integrated, char list is now requested and parsed
|
||
+ read charname from conf file and login with that char
|
||
YES, logging into the world finally WORKS! :DD
|
||
+ some checks for invalid or strange packets, which are tried to be interpreted correctly.
|
||
packet ordering and fetch queue is still buggy.
|
||
- PseuWoW yells its version once it has joined the world, and yells if an error occured.
|
||
- only server messages get interpreted correctly so far, player chat recieve does NOT work
|
||
|
||
03:12 29.07.2006 Alpha Build 8
|
||
===============================
|
||
- completely rewrote the authentication code, Imported Sha1Hash and BigNumber
|
||
classes from MaNGOS (shrunk code size to 1/4 of what it was before).
|
||
The code even seems bug-free (hope it stays so)
|
||
- Authentication WORKS! (after 2 months of failure)
|
||
+ added realmlist parser
|
||
+ set realm to login via conf file
|
||
- Tested on WoWemu (1.8.0) & MaNGOS (1.10.2), authenticating works well
|
||
+ added a neat icon :) by <20>haos
|
||
|
||
|
||
14:45 12.07.2006 Alpha Build 7
|
||
===============================
|
||
- complete code reorganisation (no more code including only with .h files.
|
||
now we have several cpp files with each its own .h)
|
||
- emulation of any version
|
||
- updated comment parser, finally :)
|
||
- you can now set version, build and language via conf file
|
||
- merged the 2 controller tcpsocks into 1, controller can still only connect to localhost.
|
||
still no conf file reading implemented into the controller. rest will be implemented later.
|
||
- removed SS & server b, they were useless
|
||
- fixed crash where an attemt was made to delete a const string.
|
||
(seems this caused the GarbageStack:: realloc() size=112 failure)
|
||
- many other general improvemens and bugfixes
|
||
|
||
02:31 10.06.2006 Alpha Build 6 - Memory handling is hard.
|
||
===============================
|
||
- fixed crash when realmlist hostname could not be resolved
|
||
! forgot to malloc x_str & u_str in proof packet sender -> crash (maybe i got it fixed this time)
|
||
- made more funcions work with the garbage collector
|
||
- in debug build GarbageStack:: realloc() size=112 fails. dunno why.
|
||
- added a server S & server b for testing. they are not important and will get removed later.
|
||
- still no correct reversion.
|
||
|
||
18:12 05.06.2006 Alpha Build 5 - The I hate C++ version
|
||
===============================
|
||
- crash,crash,crash. there must be a bug in the BN_reverse routine.
|
||
+ Added a garbage collector
|
||
- updated the fileparser, because it got bugged with the garbage collector.
|
||
More configs are supported now. comments still must be at the beginning of the line
|
||
to be treated as comments.
|
||
- still working on correct reversal :C
|
||
|
||
22:55 31.05.2006 Alpha Build 4 - The DAMN FUCKING SHIT i don't get it version
|
||
===============================
|
||
- damn i just don't find it out. decided to do a random reversal on every failure.
|
||
- the program got very unstable. seems i do a mistake i am not aware of. help anyone?
|
||
-> added a debug output to find out where the bugged lines are. strage they change
|
||
everytime i run the program. fuck.
|
||
|
||
18:16 31.05.2006 Alpha Build 3 - The YAAAY it works version
|
||
==============================
|
||
- finished the packet, server still answers "password wrong".
|
||
working on correct reversion now
|
||
|
||
16:52 30.05.2006 Alpha Build 2
|
||
===============================
|
||
- added more bignum calculations, now i got until S.
|
||
- still not sure how they have to be reversed to be calculated corrctly in the B1!77 way.
|
||
SRP demo page (srp.stanford.edu/demo) says my S is correct so far, calculated in the
|
||
normal way. At least i got the right formulas. :D
|
||
- next thing to do is split S up, hash it, etc... to get M1 & M2
|
||
|
||
21:51 24.05.2006 Alpha Build 1
|
||
===============================
|
||
- first release, not working yet.
|
||
- connecting to realm server possible, detection for acc already in use / acc not existing
|
||
- OpenSSL BIGNUM and SHA1 integrated.
|
||
- first bignum calculations :), i still have to find out how the numbers are
|
||
reversed and calculated correctly
|
||
- controller connection possible. it uses 2 ports, i will change it to 1 port in future
|
||
- config file readout (conf/pseuwow.conf)
|
||
- still crashes when it cant find the realmlist. time to fix it...
|
||
- controller connection is still buggy when a connection to the realm server has been
|
||
established.
|