DG Scripts bug fixes (#44)

* Increase ID space

DG Scripts uses tiny idspace that results in wacky bugs when the mud is
running too long.

* Overhaul script ids

All references to GET_ID(ch/obj) were removed and replaced by
char_script_id() and obj_script_id(), which don’t assign ids until they
are needed. The ch->id and obj->id variable names were changed to
script_id to prevent accidental errors for future programmers. This
change greatly increases how long the mud can run before it runs out of
ID space.

* Fix extraction count

This prevents an error log where it has over-counted the extractions
pending. It now behaves correctly when the same mob is %purge%’d or
extract_char()’d twice.
This commit is contained in:
Paul Clarke 2018-02-15 12:06:35 -07:00 committed by wyld-sw
parent d7a50664ea
commit 41da68bdb0
14 changed files with 182 additions and 125 deletions

View file

@ -717,7 +717,7 @@ struct obj_data
struct obj_data *in_obj; /**< Points to carrying object, or NULL */
struct obj_data *contains; /**< List of objects being carried, or NULL */
long id; /**< used by DG triggers - unique id */
long script_id; /**< used by DG triggers - fetch only with obj_script_id() */
struct trig_proto_list *proto_script; /**< list of default triggers */
struct script_data *script; /**< script info for the object */
@ -1033,7 +1033,7 @@ struct char_data
struct obj_data *carrying; /**< List head for objects in inventory */
struct descriptor_data *desc; /**< Descriptor/connection info; NPCs = NULL */
long id; /**< used by DG triggers - unique id */
long script_id; /**< used by DG triggers - fetch only with char_script_id() */
struct trig_proto_list *proto_script; /**< list of default triggers */
struct script_data *script; /**< script info for the object */
struct script_memory *memory; /**< for mob memory triggers */