X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=roguelike-server;h=483dc22f75171bb588c2d4c471a44637da88938e;hb=858dd9d0785c3d528e3ce8d7111819ef7e572217;hp=344f5a5618f59f80ae521404587334a467dbca38;hpb=c82cb693d765d228aacb5e28005f5967de821187;p=plomrogue diff --git a/roguelike-server b/roguelike-server index 344f5a5..483dc22 100755 --- a/roguelike-server +++ b/roguelike-server @@ -578,9 +578,15 @@ def decrement_lifepoints(t): If t is the player avatar, only blank its fovmap, so that the client may still display memory data. On non-player things, erase fovmap and memory. + Dying actors drop all their things. """ t["T_LIFEPOINTS"] -= 1 if 0 == t["T_LIFEPOINTS"]: + for id in t["T_CARRIES"]: + t["T_CARRIES"].remove(id) + world_db["Things"][id]["T_POSY"] = t["T_POSY"] + world_db["Things"][id]["T_POSX"] = t["T_POSX"] + world_db["Things"][id]["carried"] = False t["T_TYPE"] = world_db["ThingTypes"][t["T_TYPE"]]["TT_CORPSE_ID"] if world_db["Things"][0] == t: t["fovmap"] = bytearray(b' ' * (world_db["MAP_LENGTH"] ** 2)) @@ -1111,8 +1117,9 @@ def command_ping(): def command_quit(): """Abort server process.""" - save_world() - atomic_write(io_db["path_record"], io_db["record_chunk"], do_append=True) + if None == opts.replay: + save_world() + atomic_write(io_db["path_record"], io_db["record_chunk"], do_append=True) raise SystemExit("received QUIT command")