Revision b874c30b
Added by danij over 15 years ago
Files
- added
- modified
- copied
- renamed
- deleted
- doomsday
- engine
- api
- data
- portable
- include
- def_main.h (diff)
- mapdata.hs (diff)
- p_maptypes.h (diff)
- p_particle.h (diff)
- p_think.h (diff)
- rend_particle.h (diff)
- src
- cl_world.c (diff)
- def_main.c (diff)
- edit_map.c (diff)
- p_data.c (diff)
- p_mobj.c (diff)
- p_objlink.c (diff)
- p_particle.c (diff)
- p_think.c (diff)
- p_ticker.c (diff)
- r_data.c (diff)
- r_lumobjs.c (diff)
- r_main.c (diff)
- r_world.c (diff)
- rend_main.c (diff)
- rend_particle.c (diff)
- sv_pool.c (diff)
- include
- plugins
- common
- src
- g_update.c (diff)
- p_ceiling.c (diff)
- p_door.c (diff)
- p_floor.c (diff)
- p_mapsetup.c (diff)
- p_plat.c (diff)
- p_saveg.c (diff)
- p_start.c (diff)
- p_switch.c (diff)
- p_tick.c (diff)
- p_xgline.c (diff)
- p_xgsec.c (diff)
- src
- jdoom
- src
- p_enemy.c (diff)
- p_lights.c (diff)
- p_oldsvg.c (diff)
- p_telept.c (diff)
- src
- jdoom64
- src
- p_enemy.c (diff)
- p_lights.c (diff)
- p_telept.c (diff)
- src
- jheretic
- src
- p_enemy.c (diff)
- p_lights.c (diff)
- p_oldsvg.c (diff)
- p_telept.c (diff)
- src
- jhexen
- common
- engine
Fixed: "jHexen: Savegame Crash with jXRP" see here (http://sourceforge.net/tracker/?func=detail&aid=2647053&group_id=74815&atid=542099).
Added: cvar "rend-dev-generator-show-indices" - Display particle generator origin indices (for debug). Note that type-triggered and plane-triggered generators are not handled as these are inherently origin-less.
In fixing the above I have implemented a new concept: Public/Private Thinkers.
When a thinker is added to the thinker lists, the engine decides whether this thinker is visible publicly, via the API's thinker interface routines. This visibility then determines which thinker list the thinker is added to within the engine. Only publicly-visible thinkers can be interacted with via the public API.
Particle generator thinkers (P_PtcGenThinker) are engine-internal and are not made public. This means that when the game asks to re-init the thinker lists (typically after loading a saved game) these thinkers will not be affected.
Todo: It would be possible to utilize the same system for other kinds of thinkers that the game does not need to know about. I'm thinking client-side mobjs and plane/poly movers.