ROGUE_MAXTOTAL = strength*2, ISMANY -> 1

This commit is contained in:
jl777
2019-02-18 21:15:47 -11:00
parent 6019a16cf1
commit aa60acbf27
3 changed files with 15 additions and 5 deletions

View File

@@ -22,6 +22,13 @@
*/ */
void rogue_restoreobject(THING *o,struct rogue_packitem *item); void rogue_restoreobject(THING *o,struct rogue_packitem *item);
int32_t rogue_total(THING *o)
{
if ( (o->o_flags & ISMANY) != 0 )
return(1);
else return(o->o_count);
}
void restore_player(struct rogue_state *rs) void restore_player(struct rogue_state *rs)
{ {
int32_t i,total = 0; THING *obj; int32_t i,total = 0; THING *obj;
@@ -38,8 +45,8 @@ void restore_player(struct rogue_state *rs)
{ {
obj = new_item(); obj = new_item();
rogue_restoreobject(obj,&rs->P.roguepack[i]); rogue_restoreobject(obj,&rs->P.roguepack[i]);
total += obj->o_count; total += rogue_total(obj);
if ( total > pstats.s_str*3 ) if ( total > ROGUE_MAXTOTAL )
break; break;
add_pack(rs,obj,TRUE); add_pack(rs,obj,TRUE);
} }

View File

@@ -166,16 +166,16 @@ int32_t num_packitems(struct rogue_state *rs)
if ( list->o_packch != 0 ) if ( list->o_packch != 0 )
{ {
n++; n++;
total += list->o_count; total += rogue_total(list);
} }
} }
if ( rs->guiflag != 0 ) if ( rs->guiflag != 0 )
{ {
char str[MAXSTR]; char str[MAXSTR];
sprintf(str,"strength*3 %d vs total.%d vs %d inventory letters\n",pstats.s_str*3,total,n); sprintf(str,"strength*2 %d vs total.%d vs %d inventory letters\n",ROGUE_MAXTOTAL,total,n);
add_line(rs,"%s",str); add_line(rs,"%s",str);
} }
if ( total > pstats.s_str*3 ) if ( total > ROGUE_MAXTOTAL )
return(MAXPACK); return(MAXPACK);
return(n); return(n);
} }

View File

@@ -381,6 +381,9 @@ void restore_player(struct rogue_state *rs);
int32_t rogue_replay2(uint8_t *newdata,uint64_t seed,char *keystrokes,int32_t num,struct rogue_player *player,int32_t sleepmillis); int32_t rogue_replay2(uint8_t *newdata,uint64_t seed,char *keystrokes,int32_t num,struct rogue_player *player,int32_t sleepmillis);
void rogue_bailout(struct rogue_state *rs); void rogue_bailout(struct rogue_state *rs);
#define ROGUE_MAXTOTAL (pstats.s_str*2)
int32_t rogue_total(THING *o);
/* /*
* Help list * Help list
*/ */