Prevent restoring amulet
This commit is contained in:
@@ -1339,41 +1339,44 @@ rs_read_monsters(FILE *inf, struct monster *m, int count)
|
|||||||
void rogue_restoreobject(THING *o,struct rogue_packitem *item)
|
void rogue_restoreobject(THING *o,struct rogue_packitem *item)
|
||||||
{
|
{
|
||||||
int32_t i;
|
int32_t i;
|
||||||
o->_o._o_type = item->type;
|
if ( item->type != AMULET )
|
||||||
o->_o._o_launch = item->launch;
|
|
||||||
memcpy(o->_o._o_damage,item->damage,sizeof(item->damage));
|
|
||||||
memcpy(o->_o._o_hurldmg,item->hurldmg,sizeof(item->hurldmg));
|
|
||||||
o->_o._o_count = item->count;
|
|
||||||
o->_o._o_which = item->which;
|
|
||||||
o->_o._o_hplus = item->hplus;
|
|
||||||
o->_o._o_dplus = item->dplus;
|
|
||||||
o->_o._o_arm = item->arm;
|
|
||||||
o->_o._o_flags = item->flags;
|
|
||||||
o->_o._o_group = item->group;
|
|
||||||
o->o_flags |= ISKNOW;
|
|
||||||
o->o_flags &= ~ISFOUND;
|
|
||||||
switch ( item->type )
|
|
||||||
{
|
{
|
||||||
case SCROLL:
|
o->_o._o_type = item->type;
|
||||||
if ( item->which < MAXSCROLLS )
|
o->_o._o_launch = item->launch;
|
||||||
scr_info[item->which].oi_know = TRUE;
|
memcpy(o->_o._o_damage,item->damage,sizeof(item->damage));
|
||||||
break;
|
memcpy(o->_o._o_hurldmg,item->hurldmg,sizeof(item->hurldmg));
|
||||||
case POTION:
|
o->_o._o_count = item->count;
|
||||||
if ( item->which < MAXPOTIONS )
|
o->_o._o_which = item->which;
|
||||||
pot_info[item->which].oi_know = TRUE;
|
o->_o._o_hplus = item->hplus;
|
||||||
break;
|
o->_o._o_dplus = item->dplus;
|
||||||
case RING:
|
o->_o._o_arm = item->arm;
|
||||||
if ( item->which < MAXRINGS )
|
o->_o._o_flags = item->flags;
|
||||||
ring_info[item->which].oi_know = TRUE;
|
o->_o._o_group = item->group;
|
||||||
break;
|
o->o_flags |= ISKNOW;
|
||||||
case STICK:
|
o->o_flags &= ~ISFOUND;
|
||||||
if ( item->which < MAXSTICKS )
|
switch ( item->type )
|
||||||
ws_info[item->which].oi_know = TRUE;
|
{
|
||||||
break;
|
case SCROLL:
|
||||||
|
if ( item->which < MAXSCROLLS )
|
||||||
|
scr_info[item->which].oi_know = TRUE;
|
||||||
|
break;
|
||||||
|
case POTION:
|
||||||
|
if ( item->which < MAXPOTIONS )
|
||||||
|
pot_info[item->which].oi_know = TRUE;
|
||||||
|
break;
|
||||||
|
case RING:
|
||||||
|
if ( item->which < MAXRINGS )
|
||||||
|
ring_info[item->which].oi_know = TRUE;
|
||||||
|
break;
|
||||||
|
case STICK:
|
||||||
|
if ( item->which < MAXSTICKS )
|
||||||
|
ws_info[item->which].oi_know = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
char packitemstr[256];
|
||||||
|
strcpy(packitemstr,inv_name(o,FALSE));
|
||||||
|
fprintf(stderr,"packitem.(%s)\n",packitemstr);
|
||||||
}
|
}
|
||||||
char packitemstr[256];
|
|
||||||
strcpy(packitemstr,inv_name(o,FALSE));
|
|
||||||
fprintf(stderr,"packitem.(%s)\n",packitemstr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void rogue_packitemstr(char *packitemstr,struct rogue_packitem *item)
|
void rogue_packitemstr(char *packitemstr,struct rogue_packitem *item)
|
||||||
@@ -1440,7 +1443,7 @@ rs_write_object(struct rogue_state *rs,FILE *savef, THING *o)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( rs->P.packsize++ == 0 )
|
if ( rs->P.packsize == 0 )
|
||||||
{
|
{
|
||||||
rs->P.gold = purse;
|
rs->P.gold = purse;
|
||||||
rs->P.hitpoints = max_hp;
|
rs->P.hitpoints = max_hp;
|
||||||
@@ -1451,8 +1454,11 @@ rs_write_object(struct rogue_state *rs,FILE *savef, THING *o)
|
|||||||
fprintf(stderr,"%ld gold.%d hp.%d strength.%d level.%d exp.%d %d\n",ftell(savef),purse,max_hp,max_stats.s_str,pstats.s_lvl,pstats.s_exp,level);
|
fprintf(stderr,"%ld gold.%d hp.%d strength.%d level.%d exp.%d %d\n",ftell(savef),purse,max_hp,max_stats.s_str,pstats.s_lvl,pstats.s_exp,level);
|
||||||
}
|
}
|
||||||
fprintf(stderr,"object (%s) x.%d y.%d type.%d pack.(%c:%d)\n",inv_name(o,FALSE),o->_o._o_pos.x,o->_o._o_pos.y,o->_o._o_type,o->_o._o_packch,o->_o._o_packch);
|
fprintf(stderr,"object (%s) x.%d y.%d type.%d pack.(%c:%d)\n",inv_name(o,FALSE),o->_o._o_pos.x,o->_o._o_pos.y,o->_o._o_type,o->_o._o_packch,o->_o._o_packch);
|
||||||
if ( rs->P.packsize < MAXPACK )
|
if ( rs->P.packsize < MAXPACK && o->o_type != AMULET )
|
||||||
|
{
|
||||||
packsave(item,o->_o._o_type,o->_o._o_launch,o->_o._o_damage,sizeof(o->_o._o_damage),o->_o._o_hurldmg,sizeof(o->_o._o_hurldmg),o->_o._o_count,o->_o._o_which,o->_o._o_hplus,o->_o._o_dplus,o->_o._o_arm,o->_o._o_flags,o->_o._o_group);
|
packsave(item,o->_o._o_type,o->_o._o_launch,o->_o._o_damage,sizeof(o->_o._o_damage),o->_o._o_hurldmg,sizeof(o->_o._o_hurldmg),o->_o._o_count,o->_o._o_which,o->_o._o_hplus,o->_o._o_dplus,o->_o._o_arm,o->_o._o_flags,o->_o._o_group);
|
||||||
|
rs->P.packsize++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rs_write_marker(savef, RSID_OBJECT);
|
rs_write_marker(savef, RSID_OBJECT);
|
||||||
|
|||||||
@@ -114,11 +114,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// todo:
|
// todo:
|
||||||
// -detect playerdeath/quit to prevent illegal keystrokes vector
|
// make register a token burn
|
||||||
|
// convert playertxid to the original playertxid
|
||||||
// verify keystrokes tx is in mempool and confirmed
|
// verify keystrokes tx is in mempool and confirmed
|
||||||
// check that bailout is legal, ie. proper gametxid vin
|
|
||||||
// verify amulet possession in pack
|
// verify amulet possession in pack
|
||||||
// -verify playerdata can be used and has same initial level
|
|
||||||
|
|
||||||
//////////////////////// start of CClib interface
|
//////////////////////// start of CClib interface
|
||||||
//./komodod -ac_name=ROGUE -ac_supply=1000000 -pubkey=03951a6f7967ad784453116bc55cd30c54f91ea8a5b1e9b04d6b29cfd6b395ba6c -addnode=5.9.102.210 -ac_cclib=rogue -ac_perc=10000000 -ac_reward=100000000 -ac_cc=60001 -ac_script=2ea22c80203d1579313abe7d8ea85f48c65ea66fc512c878c0d0e6f6d54036669de940febf8103120c008203000401cc > /dev/null &
|
//./komodod -ac_name=ROGUE -ac_supply=1000000 -pubkey=03951a6f7967ad784453116bc55cd30c54f91ea8a5b1e9b04d6b29cfd6b395ba6c -addnode=5.9.102.210 -ac_cclib=rogue -ac_perc=10000000 -ac_reward=100000000 -ac_cc=60001 -ac_script=2ea22c80203d1579313abe7d8ea85f48c65ea66fc512c878c0d0e6f6d54036669de940febf8103120c008203000401cc > /dev/null &
|
||||||
|
|||||||
Reference in New Issue
Block a user