Hello,
Having a bit of a problem dealing with dgevents and the regen patch
found on the ftp site. I am getting compiler warnings from the following
that was included as part of regen.c. Code posted below with compiler
output:
EVENTFUNC(points_event)
{
struct regen_event_obj *regen = (struct regen_event_obj *) event_obj;
struct char_data *ch;
int type, gain;
char logbuf[100];
/* void points_event(viod *event_obj) ??? */
ch = regen->ch;
type = regen->type;
if (GET_POS(ch) >= POS_STUNNED) {
/* no help for the dying */
/*
* Increment type of points by one.
* If not at max, reenqueue the event.
*/
switch (type) {
case REGEN_HIT:
GET_HIT(ch) = MIN(GET_HIT(ch) + 1, GET_MAX_HIT(ch));
if (ch->in_room == NOWHERE)
return;
if (GET_POS(ch) <= POS_STUNNED)
update_pos(ch);
if (GET_HIT(ch) < GET_MAX_HIT(ch)) {
/* reenqueue the event */
gain = hit_gain(ch);
return (PULSES_PER_MUD_HOUR / (gain ? gain : 1));
}
break;
case REGEN_MANA:
GET_MANA(ch) = MIN(GET_MANA(ch) + 1, GET_MAX_MANA(ch));
if (ch->in_room == NOWHERE)
return;
if (GET_MANA(ch) < GET_MAX_MANA(ch)) {
/* reenqueue the event */
gain = mana_gain(ch);
return (PULSES_PER_MUD_HOUR / (gain ? gain : 1));
}
break;
case REGEN_MOVE:
GET_MOVE(ch) = MIN(GET_MOVE(ch) + 1, GET_MAX_MOVE(ch));
if (ch->in_room == NOWHERE)
return;
if (GET_MOVE(ch) < GET_MAX_MOVE(ch)) {
/* reenqueue the event */
gain = move_gain(ch);
return (PULSES_PER_MUD_HOUR / (gain ? gain : 1));
}
break;
default:
sprintf(logbuf, "SYSERR: Unknown points event type %d", type);
gcc -c -g -O2 -Wall regen.c
regen.c: In function `points_event':
regen.c:65: warning: `return' with a value, in function returning void
regen.c:76: warning: `return' with a value, in function returning void
regen.c:87: warning: `return' with a value, in function returning void
regen.c:95: warning: `return' with a value, in function returning void
regen.c:102: warning: `return' with a value, in function returning void
seems to me the function is supposed to return a regen value on the
pulse of the event. The return line looks to me like its supposed to
return 750/1
this cant be right
if anyone has a clue about this please let me in on it. i been thru the
archives docs and other such support and now im losing hair. i even made
sure that i never called direct values for get_hit etc.
Thanks
--
John Hines
Don't forget the Tiedye! http://www.tiedye.org/
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST