diff --git a/src/cc/rogue/command.c b/src/cc/rogue/command.c index affa08782..84281c5a7 100644 --- a/src/cc/rogue/command.c +++ b/src/cc/rogue/command.c @@ -25,7 +25,6 @@ command(struct rogue_state *rs) char *fp; THING *mp; static char countch, direction, newcount = FALSE; -num_packitems(rs); if (on(player, ISHASTE)) ntimes++; /* diff --git a/src/cc/rogue/fight.c b/src/cc/rogue/fight.c index 43474616e..95d7105b2 100644 --- a/src/cc/rogue/fight.c +++ b/src/cc/rogue/fight.c @@ -290,27 +290,31 @@ attack(struct rogue_state *rs,THING *mp) } when 'N': { - register THING *obj, *steal; - register int nobj; + register THING *obj, *steal; + register int nobj; + + /* + * Nymph's steal a magic item, look through the pack + * and pick out one we like. + */ + steal = NULL; + for (nobj = 0, obj = pack; obj != NULL; obj = next(obj)) + if (obj != cur_armor && obj != cur_weapon + && obj != cur_ring[LEFT] && obj != cur_ring[RIGHT] + && is_magic(obj) && rnd(++nobj) == 0) + steal = obj; + if (steal != NULL) + { + remove_mon(rs,&mp->t_pos, moat(mp->t_pos.y, mp->t_pos.x), FALSE); + mp=NULL; + fprintf(stderr,"%d: (%c) hp.%d num.%d\n",counter,c,pstats.s_hpt,num_packitems(rs);); - /* - * Nymph's steal a magic item, look through the pack - * and pick out one we like. - */ - steal = NULL; - for (nobj = 0, obj = pack; obj != NULL; obj = next(obj)) - if (obj != cur_armor && obj != cur_weapon - && obj != cur_ring[LEFT] && obj != cur_ring[RIGHT] - && is_magic(obj) && rnd(++nobj) == 0) - steal = obj; - if (steal != NULL) - { - remove_mon(rs,&mp->t_pos, moat(mp->t_pos.y, mp->t_pos.x), FALSE); - mp=NULL; - leave_pack(rs,steal, FALSE, FALSE); - msg(rs,"she stole %s!", inv_name(steal, TRUE)); - discard(steal); - } + leave_pack(rs,steal, FALSE, FALSE); + msg(rs,"she stole %s!", inv_name(steal, TRUE)); + fprintf(stderr,"%d: (%c) hp.%d num.%d\n",counter,c,pstats.s_hpt,num_packitems(rs);); + discard(steal); + fprintf(stderr,"%d: (%c) hp.%d num.%d\n",counter,c,pstats.s_hpt,num_packitems(rs);); + } } otherwise: break; diff --git a/src/cc/rogue/io.c b/src/cc/rogue/io.c index 994f112e2..dbbdb2cc1 100644 --- a/src/cc/rogue/io.c +++ b/src/cc/rogue/io.c @@ -160,14 +160,14 @@ readchar(struct rogue_state *rs) if ( rs->ind < rs->numkeys ) { c = rs->keystrokes[rs->ind++]; - if ( 0 ) + if ( 1 ) { static FILE *fp; static int32_t counter; if ( fp == 0 ) fp = fopen("log","wb"); if ( fp != 0 ) { - fprintf(fp,"%d: (%c) hp.%d\n",counter,c,pstats.s_hpt); + fprintf(fp,"%d: (%c) hp.%d num.%d\n",counter,c,pstats.s_hpt,num_packitems(rs);); fflush(fp); counter++; } diff --git a/src/cc/rogue/pack.c b/src/cc/rogue/pack.c index e3b20a45d..d49f6aa02 100644 --- a/src/cc/rogue/pack.c +++ b/src/cc/rogue/pack.c @@ -167,6 +167,7 @@ int32_t num_packitems(struct rogue_state *rs) { fprintf(stderr,"num_packitems cant find %p\n",list); sleep(3); + return(-1); } if ( list->o_packch != 0 ) { @@ -224,29 +225,29 @@ THING * leave_pack(struct rogue_state *rs,THING *obj, bool newobj, bool all) { THING *nobj; - + inpack--; nobj = obj; if (obj->o_count > 1 && !all) { - last_pick = obj; - obj->o_count--; - if (obj->o_group) - inpack++; - if (newobj) - { - nobj = new_item(); - *nobj = *obj; - next(nobj) = NULL; - prev(nobj) = NULL; - nobj->o_count = 1; - } + last_pick = obj; + obj->o_count--; + if (obj->o_group) + inpack++; + if (newobj) + { + nobj = new_item(); + *nobj = *obj; + next(nobj) = NULL; + prev(nobj) = NULL; + nobj->o_count = 1; + } } else { - last_pick = NULL; - pack_used[obj->o_packch - 'a'] = FALSE; - detach(pack, obj); + last_pick = NULL; + pack_used[obj->o_packch - 'a'] = FALSE; + detach(pack, obj); } return nobj; }