mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-24 17:10:36 +00:00
fixed some shmup-related crashes
This commit is contained in:
parent
e7b90fdb05
commit
d7a235bc8c
@ -1197,7 +1197,8 @@ void shootBullet(monster *m) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void killThePlayer(eMonster m) {
|
void killThePlayer(eMonster m) {
|
||||||
pc[cpid]->dead = true;
|
if(cpid >= 0 && cpid < MAXPLAYER && pc[cpid])
|
||||||
|
pc[cpid]->dead = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
monster *playerCrash(monster *who, hyperpoint where) {
|
monster *playerCrash(monster *who, hyperpoint where) {
|
||||||
@ -3293,13 +3294,16 @@ void clearMemory() {
|
|||||||
nextmove = 0;
|
nextmove = 0;
|
||||||
nextdragon = 0;
|
nextdragon = 0;
|
||||||
visibleAt = 0;
|
visibleAt = 0;
|
||||||
|
for(int i=0; i<MAXPLAYER; i++) pc[i] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
cell *playerpos(int i) {
|
cell *playerpos(int i) {
|
||||||
|
if(!pc[i]) return NULL;
|
||||||
return pc[i]->base;
|
return pc[i]->base;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool playerInBoat(int i) {
|
bool playerInBoat(int i) {
|
||||||
|
if(!pc[i]) return false;
|
||||||
return pc[i]->inBoat;
|
return pc[i]->inBoat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
16
system.cpp
16
system.cpp
@ -97,6 +97,12 @@ void initgame() {
|
|||||||
DEBB(DF_INIT, (debugfile,"initGame\n"));
|
DEBB(DF_INIT, (debugfile,"initGame\n"));
|
||||||
callhooks(hooks_initgame);
|
callhooks(hooks_initgame);
|
||||||
|
|
||||||
|
if(!safety) multi::players = vid.scfg.players;
|
||||||
|
if(multi::players < 1 || multi::players > MAXPLAYER)
|
||||||
|
multi::players = 1;
|
||||||
|
multi::whereto[0].d = MD_UNDECIDED;
|
||||||
|
multi::cpid = 0;
|
||||||
|
|
||||||
yendor::init(1);
|
yendor::init(1);
|
||||||
|
|
||||||
if(safety && safetyseed) {
|
if(safety && safetyseed) {
|
||||||
@ -160,6 +166,8 @@ void initgame() {
|
|||||||
|
|
||||||
yendor::lastchallenge = yendor::challenge;
|
yendor::lastchallenge = yendor::challenge;
|
||||||
|
|
||||||
|
if(shmup::on) shmup::init();
|
||||||
|
|
||||||
yendor::init(2);
|
yendor::init(2);
|
||||||
|
|
||||||
clear_euland(specialland);
|
clear_euland(specialland);
|
||||||
@ -180,14 +188,6 @@ void initgame() {
|
|||||||
|
|
||||||
for(int i=0; i<numplayers(); i++) sword::angle[i] = PURE ? 10 : 11;
|
for(int i=0; i<numplayers(); i++) sword::angle[i] = PURE ? 10 : 11;
|
||||||
|
|
||||||
if(!safety) multi::players = vid.scfg.players;
|
|
||||||
if(multi::players < 1 || multi::players > MAXPLAYER)
|
|
||||||
multi::players = 1;
|
|
||||||
multi::whereto[0].d = MD_UNDECIDED;
|
|
||||||
multi::cpid = 0;
|
|
||||||
|
|
||||||
if(shmup::on) shmup::init();
|
|
||||||
|
|
||||||
#if CAP_DAILY
|
#if CAP_DAILY
|
||||||
daily::split();
|
daily::split();
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user