コード例 #1
0
ファイル: model.c プロジェクト: jogi1/jsv
qboolean Model_MapLoadSubmodels(struct map *map)
{
	struct submodel *out, *rout;
	struct dsubmodel *in;
	int i, j;

	if (map->header->lumps[LUMP_MODELS].filelen % sizeof(*in))
		return false;

	in = (struct dsubmodel *)(map->mod_base + map->header->lumps[LUMP_MODELS].fileofs);

	map->submodels_count = map->header->lumps[LUMP_MODELS].filelen / sizeof(*in);

	if (map->submodels_count< 1)
		return false;

	if (map->submodels_count > MAX_MAP_MODELS)
		return false;

	out = map->submodels;
	rout = out;

	map->visleafs = LittleLong(in[0].visleafs);

	for (i=0; i<map->submodels_count ; i++, in++, out++)
	{
		for (j=0; j<3; j++)
		{
			out->mins[j] = LittleFloat(in->mins[j]) - 1;
			out->maxs[j] = LittleFloat(in->maxs[j]) + 1;
			out->origins[j] = LittleFloat(in->origins[j]);
		}

		for (j=0; j<MAX_MAP_HULLS; j++)
		{
			out->hulls[j].planes = map->planes;
			out->hulls[j].clipnodes = map->clipnodes;
			out->hulls[j].firstclipnode = LittleLong(in->headnode[j]);
			out->hulls[j].lastclipnode = map->clipnodes_count - 1;
		}

		Vector_Clear(out->hulls[0].clip_mins);
		Vector_Clear(out->hulls[0].clip_maxs);

		Vector_Set(out->hulls[1].clip_mins, -16, -16, -24);
		Vector_Set(out->hulls[1].clip_maxs, 16, 16, 32);

		Vector_Set(out->hulls[2].clip_mins, -32, -32, -24);
		Vector_Set(out->hulls[2].clip_maxs, 32, 32, 64);
	}
	return true;
}
コード例 #2
0
ファイル: vector.c プロジェクト: JamesLinus/helium
void Vector_Fini (Vector v)
{
    assert (v);

    Vector_Clear (v);

    free (v->data);
}
コード例 #3
0
ファイル: world.c プロジェクト: Uint1024/CZombie
void World_Reset(World* world, int map_width, int map_height)
{
    Vector_Clear(&world->bonus_vector);
    Vector_Clear(&world->bullets_vector);
    Vector_Clear(&world->monsters_vector);
    Vector_Clear(&world->explosions_vector);
    Vector_Clear(&world->events_vector);

    for(int i = 0 ; i < world->map_size ; i++)
    {
        free(world->map[i]);

    }

    for(int i = 0 ; i < world->map_size ; i++)
    {
        free(world->ground_map[i]);
    }


    *world = World_Initialize(map_width, map_height);
}
コード例 #4
0
ファイル: levelEditor.c プロジェクト: Uint1024/CZombie
void Level_Clear(World* w)
{
    for(int i = 0 ; i < Vector_Count(&w->monsters_vector) ; i++)
    {
        Entity* ent = Vector_Get(&w->monsters_vector, i);
        Entity_Destroy(ent);
    }
    for(int i = 0 ; i < Vector_Count(&w->bonus_vector) ; i++)
    {
        Entity* ent = Vector_Get(&w->bonus_vector, i);
        Entity_Destroy(ent);

    }
    for(int i = 0 ; i < Vector_Count(&w->bullets_vector) ; i++)
    {
        Entity* ent = Vector_Get(&w->bullets_vector, i);
        Entity_Destroy(ent);
    }
    for(int i = 0 ; i < Vector_Count(&w->explosions_vector) ; i++)
    {
        Entity* ent = Vector_Get(&w->explosions_vector, i);
        Entity_Destroy(ent);
    }

    Vector_Clear(&w->monsters_vector);
    Vector_Clear(&w->bonus_vector);
    Vector_Clear(&w->events_vector);
    Vector_Clear(&w->bullets_vector);
    Vector_Clear(&w->explosions_vector);
    Vector_Clear(&w->decals_vector);
    Vector_Clear(&w->props_vector);

    for(int i = 0 ; i < w->map_size ; i++)
    {
        free(w->map[i]);

    }

    for(int i = 0 ; i < w->map_size ; i++)
    {
        free(w->ground_map[i]);
    }

}