X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=src%2Fserver%2Finit.c;h=d8ae94f753a1fc66ddbd733c99875a12453254a5;hb=0438f2fc5df337e4264103a86c1765ace9c6565a;hp=2f6428e99c283e7fe192aa3e7399224bf63fd561;hpb=2a60941d0815c19c11a01943faed931e0b364d4f;p=plomrogue
diff --git a/src/server/init.c b/src/server/init.c
index 2f6428e..d8ae94f 100644
--- a/src/server/init.c
+++ b/src/server/init.c
@@ -18,8 +18,11 @@
#include "../common/rexit.h" /* exit_err() */
#include "../common/try_malloc.h" /* try_malloc() */
#include "cleanup.h" /* set_cleanup_flag() */
+#include "field_of_view.h" /* build_fov_map() */
#include "map.h" /* init_map() */
-#include "map_objects.h" /* MapObjDef, free_map_objects(), add_map_objects() */
+#include "map_objects.h" /* MapObj, MapObjDef, free_map_objects(),
+ * add_map_objects(), get_player()
+ */
#include "run.h" /* obey_msg(), io_loop() */
#include "world.h" /* global world */
@@ -89,9 +92,25 @@ extern void remake_world(uint32_t seed)
struct MapObjDef * mod;
for (mod = world.map_obj_defs; NULL != mod; mod = mod->next)
{
- add_map_objects(mod->id, mod->start_n);
+ if (world.player_type == mod->id)
+ {
+ add_map_objects(mod->id, mod->start_n);
+ break;
+ }
+ }
+ for (mod = world.map_obj_defs; NULL != mod; mod = mod->next)
+ {
+ if (world.player_type != mod->id)
+ {
+ add_map_objects(mod->id, mod->start_n);
+ }
}
set_cleanup_flag(CLEANUP_MAP_OBJECTS);
+ struct MapObj * mo;
+ for (mo = world.map_objs; NULL != mo; mo = mo->next)
+ {
+ mo->fov_map = mo->lifepoints ? build_fov_map(mo) : NULL;
+ }
if (world.turn)
{
exit_trouble(unlink(world.path_record), f_name, "unlink()");