X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_gen.h;h=54857f59137ea40c3c34f84ad6004cb8ebcf49aa;hb=88b191de24adac2a2f9aa57d001dcf17e12f788e;hp=4906603eda65f04d77bc3d77a6995a1b430944cc;hpb=d13f2700b1773551307685cc7c34c804ccd6d664;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_gen.h b/world_gen.h index 4906603..54857f5 100644 --- a/world_gen.h +++ b/world_gen.h @@ -1,6 +1,15 @@ +/* + * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved + */ + #ifndef WORLD_GEN_H #define WORLD_GEN_H +/* + * FUTURE: + * If we have multiple levels, write an unloader + */ + #include "world.h" static void world_add_all_if_material( m4x3f transform, scene *pscene, @@ -199,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,