This commit is contained in:
jl777
2019-03-26 06:14:00 -11:00
parent 33ba39090d
commit 3c9b61c105
2 changed files with 8 additions and 8 deletions

View File

@@ -976,7 +976,7 @@ int32_t games_findbaton(struct CCcontract_info *cp,uint256 &playertxid,gameseven
//fprintf(stderr,"n.%d next txid.%s/v%d\n",n,txid.GetHex().c_str(),spentvini); //fprintf(stderr,"n.%d next txid.%s/v%d\n",n,txid.GetHex().c_str(),spentvini);
if ( spentvini != 0 ) // game is over? if ( spentvini != 0 ) // game is over?
{ {
fprintf(stderr,"gameisover n.%d next txid.%s/v%d\n",n,txid.GetHex().c_str(),spentvini); //fprintf(stderr,"gameisover n.%d next txid.%s/v%d\n",n,txid.GetHex().c_str(),spentvini);
return(0); return(0);
} }
if ( keystrokesp != 0 && myGetTransaction(spenttxid,spenttx,hashBlock) != 0 && spenttx.vout.size() >= 2 ) if ( keystrokesp != 0 && myGetTransaction(spenttxid,spenttx,hashBlock) != 0 && spenttx.vout.size() >= 2 )
@@ -984,7 +984,7 @@ int32_t games_findbaton(struct CCcontract_info *cp,uint256 &playertxid,gameseven
uint256 g,b; CPubKey p; std::vector<uint8_t> k; uint256 g,b; CPubKey p; std::vector<uint8_t> k;
if ( games_keystrokesopretdecode(g,b,p,k,spenttx.vout[spenttx.vout.size()-1].scriptPubKey) == 'K' ) if ( games_keystrokesopretdecode(g,b,p,k,spenttx.vout[spenttx.vout.size()-1].scriptPubKey) == 'K' )
{ {
fprintf(stderr,"update keystrokes.%p[%d]\n",keystrokes,numkeys); //fprintf(stderr,"update keystrokes.%p[%d]\n",keystrokes,numkeys);
keystrokes = (gamesevent *)realloc(keystrokes,(int32_t)(sizeof(*keystrokes)*numkeys + k.size())); keystrokes = (gamesevent *)realloc(keystrokes,(int32_t)(sizeof(*keystrokes)*numkeys + k.size()));
for (i=0; i<k.size(); i+=sizeof(gamesevent)) for (i=0; i<k.size(); i+=sizeof(gamesevent))
{ {
@@ -992,11 +992,11 @@ int32_t games_findbaton(struct CCcontract_info *cp,uint256 &playertxid,gameseven
gamesevent val = 0; gamesevent val = 0;
for (j=0; j<sizeof(gamesevent); j++) for (j=0; j<sizeof(gamesevent); j++)
val = (val << 8) | k[i + sizeof(gamesevent)-1-j]; val = (val << 8) | k[i + sizeof(gamesevent)-1-j];
keystrokes[numkeys+i] = val; keystrokes[numkeys+i/sizeof(gamesevent)] = val;
} }
numkeys += (int32_t)k.size() / sizeof(gamesevent); numkeys += (int32_t)k.size() / sizeof(gamesevent);
(*keystrokesp) = keystrokes; (*keystrokesp) = keystrokes;
fprintf(stderr,"updated keystrokes.%p[%d]\n",keystrokes,numkeys); //fprintf(stderr,"updated keystrokes.%p[%d]\n",keystrokes,numkeys);
} }
} }
//fprintf(stderr,"n.%d txid.%s\n",n,txid.GetHex().c_str()); //fprintf(stderr,"n.%d txid.%s\n",n,txid.GetHex().c_str());

View File

@@ -89,9 +89,9 @@ gamesevent *games_extractgame(int32_t makefiles,char *str,int32_t *numkeysp,std:
if ( (retval= games_findbaton(cp,playertxid,&keystrokes,numkeys,regslot,playerdata,batontxid,batonvout,batonvalue,batonht,gametxid,gametx,maxplayers,gamesaddr,numplayers,symbol,pname)) == 0 ) if ( (retval= games_findbaton(cp,playertxid,&keystrokes,numkeys,regslot,playerdata,batontxid,batonvout,batonvalue,batonht,gametxid,gametx,maxplayers,gamesaddr,numplayers,symbol,pname)) == 0 )
{ {
UniValue obj; UniValue obj;
fprintf(stderr,"got baton\n"); //fprintf(stderr,"got baton\n");
seed = games_gamefields(obj,maxplayers,buyin,gametxid,gamesaddr); seed = games_gamefields(obj,maxplayers,buyin,gametxid,gamesaddr);
fprintf(stderr,"(%s) found baton %s numkeys.%d seed.%llu playerdata.%d playertxid.%s\n",pname.size()!=0?pname.c_str():Games_pname.c_str(),batontxid.ToString().c_str(),numkeys,(long long)seed,(int32_t)playerdata.size(),playertxid.GetHex().c_str()); fprintf(stderr,"(%s) found baton %s numkeys.%d seed.%llu playerdata.%d playertxid.%s\n",pname.size()!=0?pname.c_str():Games_pname.c_str(),batontxid.ToString().c_str(),numkeys,(long long)seed,(int32_t)playerdata.size(),playertxid.GetHex().c_str());
memset(&P,0,sizeof(P)); memset(&P,0,sizeof(P));
if ( playerdata.size() > 0 ) if ( playerdata.size() > 0 )
{ {
@@ -117,7 +117,7 @@ gamesevent *games_extractgame(int32_t makefiles,char *str,int32_t *numkeysp,std:
fclose(fp); fclose(fp);
} }
} }
fprintf(stderr,"call replay2\n"); //fprintf(stderr,"call replay2\n");
num = games_replay2(newplayer,seed,keystrokes,numkeys,playerdata.size()==0?0:&P,0); num = games_replay2(newplayer,seed,keystrokes,numkeys,playerdata.size()==0?0:&P,0);
newdata.resize(num); newdata.resize(num);
for (i=0; i<num; i++) for (i=0; i<num; i++)
@@ -125,7 +125,7 @@ gamesevent *games_extractgame(int32_t makefiles,char *str,int32_t *numkeysp,std:
newdata[i] = newplayer[i]; newdata[i] = newplayer[i];
((uint8_t *)&endP)[i] = newplayer[i]; ((uint8_t *)&endP)[i] = newplayer[i];
} }
fprintf(stderr,"back replay2 gold.%d\n",endP.gold); //fprintf(stderr,"back replay2 gold.%d\n",endP.gold);
if ( endP.gold <= 0 || endP.hitpoints <= 0 || (endP.strength&0xffff) <= 0 || endP.level <= 0 || endP.experience <= 0 || endP.dungeonlevel <= 0 ) if ( endP.gold <= 0 || endP.hitpoints <= 0 || (endP.strength&0xffff) <= 0 || endP.level <= 0 || endP.experience <= 0 || endP.dungeonlevel <= 0 )
{ {
sprintf(str,"zero value character was killed -> no playerdata\n"); sprintf(str,"zero value character was killed -> no playerdata\n");