1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-09-01 10:17:56 +00:00

more fixes to multiplayer

This commit is contained in:
Zeno Rogue
2021-03-06 11:46:13 +01:00
parent 032a6b6df2
commit 40d450676e
15 changed files with 97 additions and 92 deletions

View File

@@ -286,9 +286,7 @@ EX void bfs() {
recalcTide = false;
for(int i=0; i<numplayers(); i++) {
cell *c = playerpos(i);
if(!c) continue;
for(cell *c: player_positions()) {
if(c->cpdist == 0) continue;
c->cpdist = 0;
checkTide(c);
@@ -299,9 +297,7 @@ EX void bfs() {
int distlimit = gamerange();
for(int i=0; i<numplayers(); i++) {
cell *c = playerpos(i);
if(!c) continue;
for(cell *c: player_positions()) {
if(items[itOrbDomination])
if(c->monst == moTentacle || c->monst == moTentaclewait || c->monst == moTentacleEscaping)
worms.push_back(c);
@@ -799,8 +795,9 @@ EX void monstersTurn() {
DEBB(DF_TURN, ("mmo"));
int phase2 = (1 & items[itOrbSpeed]);
if(!phase2) movemonsters();
for(int i=0; i<numplayers(); i++) if(playerpos(i)->item == itOrbSafety) {
collectItem(playerpos(i), true);
for(cell *pc: player_positions()) if(pc->item == itOrbSafety) {
collectItem(pc, true);
return;
}
@@ -852,9 +849,8 @@ EX void monstersTurn() {
#endif
if(items[itOrbFreedom])
for(int i=0; i<numplayers(); i++)
if(multi::playerActive(i))
checkFreedom(playerpos(i));
for(cell *pc: player_positions())
checkFreedom(pc);
DEBB(DF_TURN, ("check"));
checkmove();
@@ -862,9 +858,8 @@ EX void monstersTurn() {
#if CAP_HISTORY
for(int i=0; i<numplayers(); i++)
if(multi::playerActive(i))
history::movehistory.push_back(playerpos(i));
for(cell *pc: player_positions())
history::movehistory.push_back(pc);
#endif
}