code change - oextra
move oattached and oname and other things that vary the size of the obj structure into a separate non-adjacent oextra structure, similar to what has already been done for mextra. The obj structure itself becomes a fixed size. New macros: #define ONAME(o) ((o)->oextra->oname) #define OMID(o) ((o)->oextra->omid) #define OMONST(o) ((o)->oextra->omonst) #define OLONG(o) ((o)->oextra->olong) #define OMAILCMD(o) ((o)->oextra->omailcmd) #define has_oname(o) ((o)->oextra && ONAME(o)) #define has_omid(o) ((o)->oextra && OMID(o)) #define has_omonst(o) ((o)->oextra && OMONST(o)) #define has_olong(o) ((o)->oextra && OLONG(o)) #define has_omailcmd(o) ((o)->oextra && OMAILCMD(o)) changed macros: has_name(mon) becomes has_mname(mon) to correspond. The CVS repository was tagged with NETHACK_PRE_OEXTRA before commiting these, and tagged with NETHACK_POST_OEXTRA immediately after. The diff between those two tags is this oextra patch. The associated mail daemon changes to use an oextra structure instead of a hidden command located in the name after the terminating NUL, have not been tried or tested.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* SCCS Id: @(#)mextra.h 3.5 2006/02/19 */
|
||||
/* SCCS Id: @(#)mextra.h 3.5 2006/04/14 */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -47,15 +47,12 @@
|
||||
* 6. Adjust size_monst() in src/cmd.c appropriately.
|
||||
* 7. Adjust dealloc_mextra() in src/mon.c to clean up
|
||||
* properly during monst deallocation.
|
||||
* 8. Adjust restmonchn() in src/restore.c to deal with your
|
||||
* struct during a restore.
|
||||
* 9. Adjust buffer_to_mon() in src/restore.c to properly
|
||||
* unpackage the mextra fields during revival.
|
||||
* 10. Adjust savemonchn() in src/save.c to deal with your
|
||||
* struct during a save.
|
||||
* 11. Adjust mon_to_buffer() in src/save.c to properly package
|
||||
* up your struct when the rest of the monst struct is
|
||||
* packaged up.
|
||||
* 8. Adjust copy_mextra() in src/mon.c to make duplicate
|
||||
* copies of your struct or data on another monst struct.
|
||||
* 9. Adjust restmon() in src/restore.c to deal with your
|
||||
* struct or data during a restore.
|
||||
* 10. Adjust savemon() in src/save.c to deal with your
|
||||
* struct or data during a save.
|
||||
*/
|
||||
|
||||
/***
|
||||
@@ -184,6 +181,6 @@ struct mextra {
|
||||
#define ESHK(mon) ((mon)->mextra->eshk)
|
||||
#define EMIN(mon) ((mon)->mextra->emin)
|
||||
#define EDOG(mon) ((mon)->mextra->edog)
|
||||
#define has_name(mon) ((mon)->mextra && MNAME(mon))
|
||||
#define has_mname(mon) ((mon)->mextra && MNAME(mon))
|
||||
|
||||
#endif /* MEXTRA_H */
|
||||
|
||||
Reference in New Issue
Block a user