Hello,
I'm trying to implend weapon spells, but I'm not happy at all the way
they are working, too limiting. I'm giving the builders the opportunity
to modify the weapons-spells with strings. Here the troubled code:
void oedit_setup_new(struct descriptor_data *d)
{
int counter;
CREATE(OLC_OBJ(d), struct obj_data, 1);
clear_object(OLC_OBJ(d));
OLC_OBJ(d)->name = strdup("unfinished object");
OLC_OBJ(d)->description = strdup("An unfinished object is lying here.");
OLC_OBJ(d)->short_description = strdup("an unfinished object");
for(counter=0;counter<MAX_WEAPON_SPELLS;counter++) {
OLC_OBJ(d)->wpn_spells[counter].text = strdup("$p leaps to action with an attack of its own!");
OLC_OBJ(d)->wpn_spells[counter].text2 = strdup("In your hands, $p leaps to action with an attack of its own!");
}
SET_BIT_AR(GET_OBJ_WEAR(OLC_OBJ(d)), ITEM_WEAR_TAKE);
OLC_VAL(d) = 0;
OLC_ITEM_TYPE(d) = OBJ_TRIGGER;
oedit_disp_menu(d);
}
However, when this function is called, the mud crashes with the
following gdb output:
Program received signal SIGSEGV, Segmentation fault.
0x6108d3e5 in _libkernel32_a_iname ()
So, I think the memory is not being created, allocated, something
like that. My knowledge of C is not good enough to find out what is
wrong. Here are the structures and macro's themself:
#define OLC(d) ((struct oasis_olc_data *)(d)->olc)
#define OLC_OBJ(d) (OLC(d)->obj) /* Object structure. */
struct oasis_olc_data {
The normal structures.. You know.
struct char_data *mob;
struct trig_proto_list *script;
char *storage;
struct assembly_data *OlcAssembly;
};
struct obj_data {
The normal obj_data structures etc.
bool has_spells;
struct weapon_spells wpn_spells[MAX_WEAPON_SPELLS];
};
/* For weapon spells. */
struct weapon_spells {
int spellnum;
int level;
int percent;
int engage;
char *text;
char *text2;
};
Anyone know how to get this thing working?
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
| Newbie List: http://groups.yahoo.com/group/circle-newbies/ |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT