physics
[carveJwlIkooP6JGAAIwe30JlM.git] / world_gen.h
index 030af6b8ac11628a1b9e26b3d66985ddc7eb2f59..54857f59137ea40c3c34f84ad6004cb8ebcf49aa 100644 (file)
@@ -1,3 +1,7 @@
+/*
+ * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved
+ */
+
 #ifndef WORLD_GEN_H
 #define WORLD_GEN_H
 
@@ -204,6 +208,26 @@ static void world_load(void)
             }
          }
       }
+      else if( pnode->classtype == k_classtype_achievement_box )
+      {
+         world.achievement_zones = 
+            buffer_reserve( world.achievement_zones,
+                            world.achievement_zones_count,
+                            &world.achievement_zones_cap, 1, 
+                            sizeof(struct achievement_zone) );
+
+         struct achievement_zone *zone = &world.achievement_zones[ 
+                                          world.achievement_zones_count ++ ];
+
+
+         struct classtype_achievement_box *box = mdl_get_entdata(mworld,pnode);
+
+         mdl_node_transform( pnode, zone->transform );
+         m4x3_invert_full( zone->transform, zone->inv_transform );
+         vg_strncpy( mdl_pstr(mworld, box->pstr_name), zone->name, 31 );
+         zone->name[31] = 0x00;
+         zone->triggered = 0;
+      }
    }
 
    world.instance_cache = buffer_fix( world.instance_cache,