2016-02-12 11:39:51 +01:00
|
|
|
Development Changes - stuff that really doesn't belong in core-changes.txt
|
|
|
|
|
------------------- (or, that does belong there, just not yet)
|
|
|
|
|
|
|
|
|
|
Format:
|
|
|
|
|
Date, Author, Files changed, Description of change
|
|
|
|
|
---
|
|
|
|
|
2013-09-02 Tomi
|
|
|
|
|
Added Uobject->setmember<type>(member constant, value) and UObject->getmember<type>(member constant)
|
|
|
|
|
These are for adding dynamic rw members stored in a map and using memory only when needed
|
|
|
|
|
These uses the constants from objmembers.h
|
|
|
|
|
Return value of a member defaults to 0 when it does not exist
|
|
|
|
|
As an example UArmor .ar_mod is now changed to use this system
|
|
|
|
|
|
|
|
|
|
2010-07-09 Nando
|
|
|
|
|
Fixed: strncpy(dst,src,n) does not always null-terminate the string dst. (in ssopt_parse_totalstat())
|
|
|
|
|
|
|
|
|
|
2009-08-18 MuadDib
|
|
|
|
|
Changed: Core now disconnects all online clients to initiate the cleanup sequence after data is saved during
|
|
|
|
|
shutdown. Should avoid any and all client/char/combat crashes during shutdown.
|
|
|
|
|
|
|
|
|
|
2009-08-03 MuadDib
|
|
|
|
|
Note: Remember, when working with adding new Message Handlers for incoming packets, if a packet has changed
|
|
|
|
|
since the original (structure), there is a special way for the core to know this. You need to set up
|
|
|
|
|
the new "struct" for it in the appropriate "pkt*.h" files, and for the MESSAGE_HANDLER line you need
|
|
|
|
|
to use MESSAGE_HANDLER_V2() instead. This registeres the second structure type of the packet in the
|
|
|
|
|
core's secondary Handler. See packet 0xB9 for one example and Drop Item packet for incoming.
|
|
|
|
|
|
|
|
|
|
2009-07-18 Turley
|
|
|
|
|
Changed: Shadowrealms have now an ID saved inside a map<id,realm*> used for threadsafe identification of
|
|
|
|
|
an deleted realm (decay)
|
|
|
|
|
Note: I think there is still a chance that decay thread can crash, maybe its better to only set a orphan flag
|
|
|
|
|
on DeleteRealm and destroy the realm inside the decay thread
|
|
|
|
|
|
|
|
|
|
2009-06-26 Turley
|
|
|
|
|
Fixed: Memoryleak inside datastore (no Deconstructors)
|
|
|
|
|
Fixed: (no idea if really) linux crash if http thread couldnt start removed passert check
|
|
|
|
|
|
|
|
|
|
2009-05-26 Turley
|
|
|
|
|
Fixed: (hopefully) crash on Shutdown inside schedule_attack() exit_signalled checks inside set_opponent()
|
|
|
|
|
to skip the functions
|
|
|
|
|
|
|
|
|
|
2009-03-30 Nando
|
|
|
|
|
Fixed: Character::start_script() will now return false if the passert() would be triggered. No need to
|
|
|
|
|
crash POL with a passert() if its recoverable. The passert() error was probably caused by the fact
|
|
|
|
|
that spells are scheduled to happen always in 'now', which is useless and unnecessary. It only opens
|
|
|
|
|
the possibility that the script will try to be run with another one already running... read to-do.txt
|
|
|
|
|
for 099 to see what I mean.
|
|
|
|
|
|
|
|
|
|
2009-03-22 MuadDib
|
|
|
|
|
Changed: void return_resources( u16 objtype, u16 amount ). Will now skip if exit_signalled is true. It was
|
|
|
|
|
causing crashes during shutdown due to item cleanup, and it trying to produce more world resources
|
|
|
|
|
for an item's cleanup after the ResourceDef was already emptied.
|
|
|
|
|
|
|
|
|
|
2009-03-05 Nando
|
|
|
|
|
Added: Custom house now has the correct packet handlers.
|
|
|
|
|
Added: Check on SendHousingTool() to check if the house is custom (must set with multi.setcustom(1))
|
|
|
|
|
Note: The system is still very insecure, and should be made more customizable. Overall, what we had
|
|
|
|
|
of code is working and bug free (so it seems). :)
|
|
|
|
|
|
|
|
|
|
2009-03-05 Nando
|
|
|
|
|
Added: send_sysmessage_cl_affix(), say_above_cl_affix() and private_say_above_cl_affix() to clfunc.cpp.
|
|
|
|
|
Note: need to add the eScript functions in clemod.cpp
|
|
|
|
|
|
|
|
|
|
2009-03-01 Nando
|
|
|
|
|
Changed: Thread status report will now say how many child_threads and what's the size() of ThreadMap
|
|
|
|
|
contents.
|
|
|
|
|
|
|
|
|
|
2009-02-25 MuadDib
|
|
|
|
|
Changed: Rewrote transmit_to_inrange and transmit to others. They now use a bool of true/false
|
|
|
|
|
to decide if this is going to a >= 6017 client.
|
|
|
|
|
|
|
|
|
|
2009-02-02 MuadDib
|
|
|
|
|
* Added: Initial code for AOS Resistances. These are purely for storage, mods, and Statmsg
|
|
|
|
|
handling right now. Still need to throw in checks in core cmbt and places that will
|
|
|
|
|
need to know which to check for stuff like Statmsg does now.
|
|
|
|
|
|
|
|
|
|
2009-01-26 Nando
|
|
|
|
|
* Added: Cleanup of Repsys Hooks
|
|
|
|
|
* Changed: VersionClientStruct is now declared on the stack when needed, instead of the heap.
|
|
|
|
|
(Like ConfigElem's)
|
|
|
|
|
2009-01-26 Turley
|
|
|
|
|
* Added: Cleanup of syshooks
|
|
|
|
|
|
|
|
|
|
2009-01-25 Turley
|
|
|
|
|
* Added:
|
|
|
|
|
(#define LEAKFINDER) - Added to xmain.cpp. Use this to detect memory leaks in
|
|
|
|
|
the core. Remember, this must be uncommented, and compiled using Debug mode, not
|
|
|
|
|
Release. :)
|
|
|
|
|
|
|
|
|
|
2009-01-25 MuadDib
|
|
|
|
|
* Changed:
|
|
|
|
|
is_banned_ips() no longer loads the bannedips.cfg file every client
|
|
|
|
|
login attempt. Now it is loaded via new function in bannedips.cpp and
|
|
|
|
|
a struct/vector holds the cfg info (created in bannedips.h that I added).
|
|
|
|
|
It reloads it with reload configuration too now. Much cleaner.
|
|
|
|
|
|
|
|
|
|
2009-01-22 Turley
|
|
|
|
|
* Fixed:
|
|
|
|
|
Cleanup of
|
|
|
|
|
Spells::spellcircles & spells2
|
|
|
|
|
UOSkills::uoskills
|
|
|
|
|
PacketHookData::clean_packethooks() to call the deconstructor
|
|
|
|
|
ItemDesc::objtype_byname & old_objtype_conversions
|
|
|
|
|
Pkg::packages_byname
|
|
|
|
|
Polwww::mime_types
|
|
|
|
|
|
|
|
|
|
2009-01-21 Turley
|
|
|
|
|
* Fixed: Cleanup of
|
|
|
|
|
Attribute::attributes_byname & attributes
|
|
|
|
|
BoatShapes::boatshapes
|
|
|
|
|
CmdLevel::cmdlevels2
|
|
|
|
|
* Added: added resourcedefs.clear() to Resource::clean_resources()
|
|
|
|
|
* Changed: changed delete_all(vitals) to Vital::clean_vital() to also cleanup vitals_byname
|
|
|
|
|
* Note: never try to delete a vector like *_byname which contains aliases results in an crash cause
|
|
|
|
|
it tries to access bad pointer...
|
|
|
|
|
|
|
|
|
|
2009-01-20 Nando
|
|
|
|
|
* Fixed: Leak in RegionGroup, was missing deleting all the Region's from regions_ vector. :)
|
|
|
|
|
* Fixed: clean_resources() from resource.cpp was calling "delete[] (*itr).second", but
|
|
|
|
|
it should be "delete (*itr).second" as far as I know, as it's being allocated by
|
|
|
|
|
calling "new something" and not "new something[count]". :)
|
|
|
|
|
|
|
|
|
|
2009-01-19 Nando
|
|
|
|
|
* Fixed: unload_packages() wasn't being called in pol.cpp during cleanup.
|
|
|
|
|
* Fixed: unload_aux_services() wasn't being called in pol.cpp during cleanup, nor was it prototyped
|
|
|
|
|
there. One less leak. Thanks Turley for running the leak analyzer! ;)
|
|
|
|
|
|
|
|
|
|
2009-01-18 Nando
|
|
|
|
|
* Added: clean_multidefs() will now run at the end of cleanup_vars().
|
|
|
|
|
* Fixed: 'vitals' wasn't being deleted. Added delete_all(vitals) to uvars.cpp.
|
|
|
|
|
* Added: There was no ~Vital(). Added one to delete the exported functions.
|
|
|
|
|
* Fixed: ~Realm() was crashing because of delete[] *zone instead of delete[] zone. :)
|
|
|
|
|
* Fixed: the vector<Realm*>* Realms was leaking on shutdown. Added delete_all(*Realms) and delete Realms
|
|
|
|
|
to the end of cleanup_vars().
|
|
|
|
|
* Added: clean_multidefs() to multidef.cpp. Just need to find a good place to call it...
|
|
|
|
|
* Note: anti-leak brigade began today.
|
|
|
|
|
|
|
|
|
|
2008-12-31 Nando
|
|
|
|
|
* Fixed: Internal webserver's thread wasn't using pthread_exit / _endthreadex,
|
|
|
|
|
and never called threadmap::Register() if WIN32 was defined. (Maybe
|
|
|
|
|
change www to use threadhelp::start_thread()?)
|
|
|
|
|
* Note: This fix will possibly give us information about zombie connections... *hopeful*
|
|
|
|
|
* Added: Even though I think run_thread() with no args in threadhelp.cpp is never called, added
|
|
|
|
|
error printing when catching an exception.
|
|
|
|
|
|
|
|
|
|
2008-12-16 MuadDib
|
|
|
|
|
* Note: A Function that returns a BObject/BObjectImp that is not set to a variable
|
|
|
|
|
or passed directly to a calling eScript causes a memory leak.
|
|
|
|
|
aka, if not done like : return SetSize(newsize); // where SetSize returns BObjectImp
|
|
|
|
|
instead done like : SetSize(newsize); // where SetSize returns BObjectImp
|
|
|
|
|
|
|
|
|
|
2007-03-08 Shinigami
|
|
|
|
|
* Added pthread_exit and _endhreadex to handle thread closing as intended
|
|
|
|
|
|
|
|
|
|
2007-01-01 MuadDib
|
|
|
|
|
* NOTE: In standingheight checks there is a nasty bug. Items NOT locked down
|
|
|
|
|
(unmovable), are NOT being checked correctly to block movement.
|
|
|
|
|
|
|
|
|
|
2006-10-07 Shinigami
|
|
|
|
|
* FreeBSD must use stdlib.h instead of malloc.h.
|
|
|
|
|
Linux can use stdlib.h but malloc_usable_size is decleared in malloc.h only.
|
|
|
|
|
Win can use stdlib.h but _HEAPINFO is decleared in malloc.h only.
|
|
|
|
|
* FreeBSD needs Port libexecinfo to support backtrace functionality.
|
|
|
|
|
* FreeBSD 6.1 doesn't know malloc_usable_size - Counter bytes_allocated disabled.
|
|
|
|
|
Upcoming FreeBSD 7 will support it.
|
|
|
|
|
* FreeBSD doesn't know libc-version.h - Version Check disabled.
|
|
|
|
|
|
|
|
|
|
2006-08-16 Austin
|
|
|
|
|
* Improved error report message for armrzone.cfg on startup.
|
|
|
|
|
* Moved the call to close the system tray to the top of the x_maininner() function in pol.cpp
|
|
|
|
|
I called it with atexit() so any time POL does an assert, exit, etc. it will remove the icon, now.
|
|
|
|
|
It still wont remove it if the user clicks the x button to close the console.. need to research
|
|
|
|
|
windows events for that.
|
|
|
|
|
|
|
|
|
|
2006-08-10 Austin
|
|
|
|
|
* Startup data load changes:
|
|
|
|
|
1. Fixed a crash that would occur when loading storage.txt if an item was omitted.
|
|
|
|
|
2. If an item belongs in a container or on a character and neither are present and IgnoreLoadErrors
|
|
|
|
|
is enabled, the item will be removed, rather than halting POL startup.
|
|
|
|
|
3. If an item has an undefined objtype and IgnoreLoadErrors is enabled, POL will not halt on startup.
|
|
|
|
|
|
|
|
|
|
2006-06-23 MuadDib
|
|
|
|
|
* Moved more of the tooltip code to a new tooltip.h/cpp file setup for better
|
|
|
|
|
organization.
|
|
|
|
|
2006-06-17 Austin
|
|
|
|
|
* BIG improvements to uoscrobj.cpp
|
|
|
|
|
Will convert the string into a token equivalent then use that part of the code.
|
|
|
|
|
This should cause a teensy speed-up as well as the elimination of a lot of redundant code.
|
|
|
|
|
|
|
|
|
|
2006-06-15 Austin
|
|
|
|
|
* bool FindNpcTemplate( const char *template_name, ConfigFile& cf, ConfigElem& elem )
|
|
|
|
|
This function is still used by stuff, so I moved it from textcmd.cpp to npctemplate.cpp
|
|
|
|
|
* Improved code for GetConfigStringDictionary() to directly use String(string)
|
|
|
|
|
* Removed core support for the 'showadv' privilege (not used anymore)
|
|
|
|
|
|
|
|
|
|
2006-06-10 MuadDib
|
|
|
|
|
Removed Totally removed the need for useskill.h in core. It was used for depreciated
|
|
|
|
|
stat gain functions.
|
|
|
|
|
|
|
|
|
|
2006-05-30 MuadDib
|
|
|
|
|
Changed In spells.cpp, added support for the scroll objtypes of SE and ML spellbook
|
|
|
|
|
types. However, in the "school" 3 entry, it is a copy of magery. This is just
|
|
|
|
|
as a placeholder, because thus far no book can be found that uses the 301+
|
|
|
|
|
spellid range on OSI.
|
|
|
|
|
|
|
|
|
|
2006-05-24 Shinigami
|
|
|
|
|
Extended progverstr and buildtagstr upto 64 chars to hold Code names.
|
|
|
|
|
|
|
|
|
|
2005-12-05 MuadDib
|
|
|
|
|
Changed How realms are handled with internal_MoveItem. Now you send the new realm
|
|
|
|
|
to the function (updated Container move func also) instead of oldrealm. Oldrealm
|
|
|
|
|
handling is done in the move function so as to properly replace the realm member
|
|
|
|
|
if an item is not sucessfully moved.
|
|
|
|
|
Changed How ~ItemGivenEvent treats the GivenTime Cprop in order for it to properly compare
|
|
|
|
|
it to the given_time_ member.
|
|
|
|
|
Changed Changed u8 initialization of client_lang member in the 0xBF packet handler to
|
|
|
|
|
char initialization for compatibility and ease of reading.
|
|
|
|
|
|
|
|
|
|
2005-11-26 Shinigami
|
|
|
|
|
Changed "strcmp" into "stricmp" to suppress Script Errors.
|
|
|
|
|
|
|
|
|
|
2005-11-14 Austin
|
|
|
|
|
Added internal_InBoxAreaChecks(x1, y1, z1, x2, y2, x2, realm); to uoemod.h and uoemod.cpp
|
|
|
|
|
Function is responsible for adjusting coordinates to fit within the realm.
|
|
|
|
|
|
|
|
|
|
2005-10-17 Austin
|
|
|
|
|
Added uoemod4.cpp
|
|
|
|
|
Moved Move* uo.em functions to here.
|
|
|
|
|
Moved internal_MoveItem() to uoemod4.cpp
|
|
|
|
|
Added internal_MoveBoat, internal_MoveCharacter, internal_MoveContainer to uoemod4.cpp
|
|
|
|
|
|
|
|
|
|
2005-09-10 Austin
|
|
|
|
|
Added to pkg.cpp GetPackageConfigPath(Package* pkg, string filename)
|
|
|
|
|
Will use in the future to more easily check if a config should be read from
|
|
|
|
|
pkgdir/config/config.cfg or /pkgdir/config.cfg. Too much code would need to be
|
|
|
|
|
changed to make it work properly with cfgfile.em for 096 but for now it does help
|
|
|
|
|
reduce some redundant code elsewhere.
|
|
|
|
|
|
|
|
|
|
2005-08-26 Austin
|
|
|
|
|
Added lastx and lasty setting at the bottom of char_select() in pol.cpp
|
|
|
|
|
to fix a problem with realm switching after logging in.
|
|
|
|
|
Renamed inform_logout to inform_leftarea for better reusablility.
|
|
|
|
|
Renamed NpcPropagateLogOut to NpcPropagateLeftArea for better reusability.
|
|
|
|
|
Added distance check to inform_leftarea.
|
|
|
|
|
Added a NpcPropagateLeftArea line to uoemod2.cpp when a mobile changes realms.
|
|
|
|
|
|
|
|
|
|
2005-08-25 Austin
|
|
|
|
|
Moved the pol_distance(x1, y1, x2, y2) function from npc.cpp to ufunc.cpp
|
|
|
|
|
Moved its prototype from uoemod to ufunc.h
|
|
|
|
|
Move was made so that it sits next to pol_distance(character, object) for easier
|
|
|
|
|
function overloading.
|
|
|
|
|
|
|
|
|
|
2005-07-04 Shinigami
|
|
|
|
|
Memory leak inside Script-Cache (scrstore::ScriptStorage)... (is not fixed, just detected)
|
|
|
|
|
it's the same leak type than inside Read-/UnloadConfigFile() - but not critical for live shards
|
|
|
|
|
|
|
|
|
|
2005-07-01 Shinigami
|
|
|
|
|
Memory leak inside Read-/UnloadConfigFile() is not really fixed!
|
|
|
|
|
Core now never loads unmodified cfg files again into memory, and this will stop huge memory usage.
|
|
|
|
|
Old, but still loaded cfg files are moved to pol/cfgrepos.cpp:oldcfgfiles.
|
|
|
|
|
We have to think over... it's a problem with script-inside references...
|
|
|
|
|
|
|
|
|
|
2005-06-30 Shinigami
|
|
|
|
|
Memory leak inside BLong found (most BLong's gets destroyed on Shutdown only).
|
|
|
|
|
fixed_allocator is a little bit critical too, but the advantages (grouping smaller requests)
|
|
|
|
|
are greater than the disadvantages (blocks don't get destroyed on shutdown).
|
|
|
|
|
|
|
|
|
|
2005-06-20 Shinigami
|
|
|
|
|
A lot of Memory leak detection stuff added... just create a configuration using MEMORYLEAK
|
|
|
|
|
as macro definition and recompile everything (Core compiled with these macro will show'em
|
|
|
|
|
in start/pol.log/console too). To show usefull stuff, just call PolCore().internal(1)
|
|
|
|
|
and take a look @ debug.log - just add this line to WorldSaver Cycle... it's very usefull
|
|
|
|
|
to get memory statistics and was used to detect all three memory leaks above.
|
|
|
|
|
|
|
|
|
|
2005-06-06 Shinigami
|
|
|
|
|
linux compilation with -O3 (or -finline-functions (a part of -O3)) will destruct
|
|
|
|
|
pathfinding code in some cases! server will crash... (tested with gcc 3.3.5)
|
|
|
|
|
e.g.: FindPath(5393, 838, 45, 5394, 826, 60);
|
|
|
|
|
|
|
|
|
|
2003-07-27 Syzygy
|
|
|
|
|
Changed boat code to use new map format
|
|
|
|
|
|
|
|
|
|
2003-06-18 Syzygy
|
|
|
|
|
SaveWorldState( flags := 0 ), flags can be SAVE_FULL or SAVE_INCREMENTAL
|
|
|
|
|
pol.cfg: ShutdownSaveType = full|incremental
|
|
|
|
|
more AssertionFailureAction options: shutdown-save-full | shutdown-save-incremental
|
|
|
|
|
|
|
|
|
|
2003-06-08 Syzygy
|
|
|
|
|
Offline PCs will once again be saved.
|
|
|
|
|
|
|
|
|
|
2003-05-19 Syzygy
|
|
|
|
|
Added checkpoints to Character::die(), should help catch cases where a mob death doesn't completely kill the mob
|
|
|
|
|
- the additional die() call should be removed, since the check is meant to avoid creating multiple corpses.
|
|
|
|
|
Added npc_count to uobjcnt, and report in pol.cpp at exit
|
|
|
|
|
|
|
|
|
|
2003-05-18 Syzygy
|
|
|
|
|
Converted a bunch of catch(...) to catch( exception& ).
|
|
|
|
|
catching ... should be unnecessary now, since code no longer throws strings / char* etc.
|
|
|
|
|
Changed modules RArray to use vector
|
|
|
|
|
|
|
|
|
|
2003-05-17 Syzygy
|
|
|
|
|
Converted all the 'throw' statements that were throwing strings to instead throw runtime_error
|
|
|
|
|
This will allow catch( std::exception& ) to catch everything thrown by the application
|
|
|
|
|
|
|
|
|
|
2003-05-13 Syzygy
|
|
|
|
|
objecthash stores UObjectRef now, and there is a reaper thread that sweeps it occasionally.
|
|
|
|
|
2003-05-09 Syzygy
|
|
|
|
|
Added clib/iohelp.cpp and clib/iohelp.h
|
|
|
|
|
Started the objecthash storing UObjectRef instead of UObject*
|
|
|
|
|
|
|
|
|
|
2003-02-18 Racalac
|
|
|
|
|
Added "localvarmembers" debugger command in poldbg.cpp
|
|
|
|
|
2003-02-14 Racalac
|
|
|
|
|
Added "pc" debugger command in poldbg.cpp. not real useful to users until we release the debugger client
|
|
|
|
|
|
|
|
|
|
2003-01-12 Syzygy
|
|
|
|
|
runecl: Added '-a' option to enable assertions (but Debug build only)
|
|
|
|
|
runecl: defined INC_PASSERT=1 (debug build)
|
|
|
|
|
|
|
|
|
|
2003-01-07 Syzygy
|
|
|
|
|
Set debug formats for all Release targets to PDB. This doesn't seem to affect the size of the .exe image.
|
|
|
|
|
This is in preparation for better crash dump analysis support
|
|
|
|
|
|
|
|
|
|
2003-01-01 Syzygy
|
|
|
|
|
Changed all the .c files in clib/ to .cpp files
|
|
|
|
|
New pol.cfg option: UsePolMapFile=[0,1]
|
|
|
|
|
If true, uses files in realm/main/* for most map / statics / LOS info.
|
|
|
|
|
If false, original UO data files are used.
|
|
|
|
|
uoconvert.exe generates the POL data files:
|
|
|
|
|
c:\pol> mkdir realm
|
|
|
|
|
c:\pol> mkdir realm\main
|
|
|
|
|
c:\pol> uoconvert.exe c:\uodata\
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|