Refactor, add more checks
This commit is contained in:
parent
88f03f01e9
commit
2554eaad57
@ -979,20 +979,12 @@ namespace spades {
|
||||
SPADES_MARK_FUNCTION();
|
||||
|
||||
Player *p = player;
|
||||
IRenderer *renderer = client->GetRenderer();
|
||||
const SceneDefinition &lastSceneDef = client->GetLastSceneDef();
|
||||
|
||||
if (p->GetTeamId() >= 2) {
|
||||
// spectator, or dummy player
|
||||
return;
|
||||
}
|
||||
// debug
|
||||
if (false) {
|
||||
Handle<IImage> img = renderer->RegisterImage("Gfx/Ball.png");
|
||||
renderer->SetColorAlphaPremultiplied(MakeVector4(1, 0, 0, 0));
|
||||
renderer->AddLongSprite(img, lastSceneDef.viewOrigin + MakeVector3(0, 0, 1),
|
||||
p->GetOrigin(), 0.5f);
|
||||
}
|
||||
|
||||
float distancePowered = (p->GetOrigin() - lastSceneDef.viewOrigin).GetPoweredLength();
|
||||
if (distancePowered > 140.f * 140.f) {
|
||||
|
@ -34,7 +34,7 @@
|
||||
namespace spades {
|
||||
namespace client {
|
||||
|
||||
GameMap::GameMap() : listener(NULL) {
|
||||
GameMap::GameMap() {
|
||||
SPADES_MARK_FUNCTION();
|
||||
|
||||
for (int x = 0; x < DefaultWidth; x++)
|
||||
|
@ -118,8 +118,6 @@ namespace spades {
|
||||
}
|
||||
if (!unsafe) {
|
||||
if (changed) {
|
||||
if (listener)
|
||||
listener->GameMapChanged(x, y, z, this);
|
||||
{
|
||||
AutoLocker guard(&listenersMutex);
|
||||
for (auto *l : listeners) {
|
||||
@ -130,8 +128,6 @@ namespace spades {
|
||||
}
|
||||
}
|
||||
|
||||
void SetListener(IGameMapListener *l) { listener = l; }
|
||||
IGameMapListener *GetListener() { return listener; }
|
||||
void AddListener(IGameMapListener *);
|
||||
void RemoveListener(IGameMapListener *);
|
||||
|
||||
@ -157,7 +153,6 @@ namespace spades {
|
||||
private:
|
||||
uint64_t solidMap[DefaultWidth][DefaultHeight];
|
||||
uint32_t colorMap[DefaultWidth][DefaultHeight][DefaultDepth];
|
||||
IGameMapListener *listener;
|
||||
std::list<IGameMapListener *> listeners;
|
||||
Mutex listenersMutex;
|
||||
|
||||
|
@ -148,10 +148,8 @@ namespace spades {
|
||||
def.zFar = 200.f;
|
||||
|
||||
// start rendering
|
||||
IGameMapListener *oldListener = nullptr;
|
||||
GameMap *map = world->GetMap();
|
||||
if (!def.skipWorld) {
|
||||
oldListener = map->GetListener();
|
||||
renderer->SetGameMap(map);
|
||||
}
|
||||
renderer->StartScene(def);
|
||||
|
@ -765,6 +765,9 @@ namespace spades {
|
||||
if (GetWorld()->GetLocalPlayer() == p) {
|
||||
// handle "/fly" jump
|
||||
if (inp.jump) {
|
||||
if (!p) {
|
||||
SPRaise("Local player is null");
|
||||
}
|
||||
p->ForceJump();
|
||||
}
|
||||
break;
|
||||
@ -1371,7 +1374,7 @@ namespace spades {
|
||||
else {
|
||||
int clip = reader.ReadByte();
|
||||
int reserve = reader.ReadByte();
|
||||
if (clip < 255 && reserve < 255) {
|
||||
if (clip < 255 && reserve < 255 && p) {
|
||||
p->ReloadDone(clip, reserve);
|
||||
}
|
||||
}
|
||||
|
@ -1148,7 +1148,6 @@ namespace spades {
|
||||
velocity.y *= .5f;
|
||||
|
||||
if (f2 > FALL_DAMAGE_VELOCITY) {
|
||||
f2 -= FALL_DAMAGE_VELOCITY;
|
||||
if (world->GetListener()) {
|
||||
world->GetListener()->PlayerLanded(this, true);
|
||||
}
|
||||
|
@ -101,4 +101,4 @@ namespace spades {
|
||||
}
|
||||
operator bool() { return ptr != NULL; }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user