game: Add Dawn of Darkness entities description

This commit is contained in:
Denis Pauk 2024-10-26 18:27:17 +03:00
parent 2ff7e8e6d0
commit bc7567fd30
10 changed files with 277 additions and 2 deletions

View file

@ -355,6 +355,7 @@ set(Game-Source
${GAME_SRC_DIR}/g_newtarg.c
${GAME_SRC_DIR}/g_newtrig.c
${GAME_SRC_DIR}/g_newweap.c
${GAME_SRC_DIR}/g_obj.c
${GAME_SRC_DIR}/g_phys.c
${GAME_SRC_DIR}/g_spawn.c
${GAME_SRC_DIR}/g_sphere.c

View file

@ -965,6 +965,7 @@ GAME_OBJS_ = \
src/game/g_newtarg.o \
src/game/g_newtrig.o \
src/game/g_newweap.o \
src/game/g_obj.o \
src/game/g_phys.o \
src/game/g_spawn.o \
src/game/g_sphere.o \

View file

@ -111,6 +111,9 @@ Games:
* SDK: <https://github.com/NightDive-Studio/sin-ex-game>
* SDK: <https://github.com/jimdose/SiN_110_Source>
* SDK: <https://code.idtech.space/ritual/sin-sdk>
* Dawn of Darkness:
* Docs: <https://www.moddb.com/mods/dawn-of-darkness1/downloads/dod-mood-scripts-gsm-tutorials-fgd-and-def-file>
* Demo: [Episode 1](https://www.moddb.com/mods/dawn-of-darkness1/downloads/dawn-of-darkness-episode-1)
Games check videos:

132
src/game/g_obj.c Normal file
View file

@ -0,0 +1,132 @@
/*
* Copyright (C) 1997-2001 Id Software, Inc.
* Copyright (c) ZeniMax Media Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* =======================================================================
*
* Objects implementations
*
* =======================================================================
*/
#include "header/local.h"
/*
* QUAKED object_flame1 (1 .5 .5) (-3 -3 -6) (3 3 11)
*
* "sounds"
* 0) no sound (default)
* 1) sound torch
* 2) sound campfire
*/
void
object_flame1_think(edict_t *self)
{
self->s.frame = (self->s.frame + 1) % 64;
self->nextthink = level.time + FRAMETIME;
}
void
SP_object_flame1(edict_t *self)
{
self->movetype = MOVETYPE_NONE;
self->solid = SOLID_NOT;
self->think = object_flame1_think;
self->nextthink = level.time + FRAMETIME;
self->s.frame = 0;
switch (self->sounds) {
case 1:
self->s.sound = gi.soundindex("objects/fire/torchburn.wav");
break;
case 2:
self->s.sound = gi.soundindex("objects/fire/campfire.wav");
break;
default:
self->s.sound = 0;
break;
}
gi.linkentity(self);
}
/*
* QUAKED object_big_fire (1 .5 .5) (-3 -3 -6) (3 3 11)
*
* "sounds"
* 0) no sound (default)
* 1) sound campfire
*/
void
object_big_fire_think(edict_t *self)
{
self->s.frame = (self->s.frame + 1) % 60;
self->nextthink = level.time + FRAMETIME;
}
void
SP_object_big_fire(edict_t *self)
{
self->movetype = MOVETYPE_NONE;
self->solid = SOLID_NOT;
self->think = object_big_fire_think;
self->nextthink = level.time + FRAMETIME;
self->s.frame = 0;
switch (self->sounds) {
case 1:
self->s.sound = gi.soundindex("objects/fire/torchburn.wav");
break;
default:
self->s.sound = 0;
break;
}
gi.linkentity(self);
}
/*
* QUAKED object_campfire (1 .5 .5) (-10 -10 -5) (10 10 5)
*
*
* "sounds"
* 0) no sound (default)
* 1) sound campfire
*/
void
SP_object_campfire(edict_t *self)
{
self->movetype = MOVETYPE_NONE;
self->solid = SOLID_NOT;
self->s.frame = 0;
switch (self->sounds) {
case 1:
self->s.sound = gi.soundindex("objects/fire/campfire.wav");
break;
default:
self->s.sound = 0;
break;
}
gi.linkentity(self);
}

View file

@ -1088,6 +1088,8 @@ extern void mutant_walk ( edict_t * self ) ;
extern void mutant_walk_loop ( edict_t * self ) ;
extern void nuke_bounce ( edict_t * ent , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
extern void nuke_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
extern void object_big_fire_think ( edict_t * ent ) ;
extern void object_flame1_think ( edict_t * ent ) ;
extern void object_repair_dead ( edict_t * ent ) ;
extern void object_repair_fx ( edict_t * ent ) ;
extern void object_repair_sparks ( edict_t * ent ) ;

View file

@ -1073,6 +1073,8 @@
{"mutant_walk_loop", (byte *)mutant_walk_loop},
{"nuke_bounce", (byte *)nuke_bounce},
{"nuke_die", (byte *)nuke_die},
{"object_big_fire_think", (byte *)object_big_fire_think},
{"object_flame1_think", (byte *)object_flame1_think},
{"object_repair_dead", (byte *)object_repair_dead},
{"object_repair_fx", (byte *)object_repair_fx},
{"object_repair_sparks", (byte *)object_repair_sparks},

View file

@ -155,6 +155,9 @@ extern void SP_monster_widow(edict_t * self);
extern void SP_monster_widow2(edict_t * self);
extern void SP_monster_wizard(edict_t * self);
extern void SP_monster_zombie(edict_t * self);
extern void SP_object_big_fire ( edict_t * ent ) ;
extern void SP_object_campfire ( edict_t * ent ) ;
extern void SP_object_flame1 ( edict_t * ent ) ;
extern void SP_object_repair ( edict_t * ent ) ;
extern void SP_path_corner(edict_t * self);
extern void SP_point_combat(edict_t * self);

View file

@ -162,6 +162,9 @@
{"monster_widow2", SP_monster_widow2},
{"monster_wizard", SP_monster_wizard},
{"monster_zombie", SP_monster_zombie},
{"object_big_fire", SP_object_big_fire},
{"object_campfire", SP_object_campfire},
{"object_flame1", SP_object_flame1},
{"path_corner", SP_path_corner},
{"point_combat", SP_point_combat},
{"rotating_light", SP_rotating_light},

View file

@ -175,7 +175,7 @@ SV_DemoMap_f(void)
static void
SV_GameMap_f(void)
{
char *map;
char *map, mapvalue[MAX_QPATH];
int i;
client_t *cl;
qboolean *savedInuse;
@ -186,12 +186,20 @@ SV_GameMap_f(void)
return;
}
if (strlen(Cmd_Argv(1)) >= sizeof(mapvalue))
{
Com_Printf("gamemap is too long\n");
return;
}
Com_DPrintf("%s(%s)\n", __func__, Cmd_Argv(1));
FS_CreatePath(va("%s/save/current/", FS_Gamedir()));
/* check for clearing the current savegame */
map = Cmd_Argv(1);
strcpy(mapvalue, Cmd_Argv(1));
map = mapvalue;
if (map[0] == '*')
{

View file

@ -899,3 +899,123 @@ trigger_playerusepuzzle||1.0|1.0|1.0|general|0.0|0.0|0.0|0.0|0.0|0.0|shadow|0|0.
trigger_puzzle||1.0|1.0|1.0|general|-8|-8|-8|8|8|8|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Relay that requires puzzle piece|.5|.5|.5
trigger_quake||1.0|1.0|1.0|general|0.0|0.0|0.0|0.0|0.0|0.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Earthquake|0.5|0.5|0.5
trigger_quit_to_menu||1.0|1.0|1.0|general|0.0|0.0|0.0|0.0|0.0|0.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Quit to menu|.5|.5|.5
// Dawn of Darkness
ammo_arrows|models/weapons/ammo/g_arrow.md2|1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Arrows Ammo|0.3|0.3|1.0
ammo_bolts|models/weapons/ammo/g_bolt.md2|1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Bolts Ammo|0.3|0.3|1.0
ammo_dballs|models/weapons/ammo/g_dballs.md2|1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Dragon Balls Ammo|0.3|0.3|1.0
ammo_ebolts|models/weapons/ammo/g_ebolt.md2|1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Explosive Bolts|0.3|0.3|1.0
ammo_farrows|models/weapons/ammo/g_farrow.md2|1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Fire Arrows|0.3|0.3|1.0
animal_camel|models/animals/camel.md2|1.0|1.0|1.0|general|-8.0|-16.0|-20.0|8.0|16.0|0.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Camel|1.0|0.0|0.0
animal_fish|models/animals/fish1.md2|1.0|1.0|1.0|general|-4.0|-8.0|-4.0|4.0|8.0|4.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Fish|1.0|0.0|0.0
animal_goat|models/animals/goat.md2|1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Goat|1.0|0.0|0.0
animal_vulture|models/animals/vulture.md2|1.0|1.0|1.0|general|-8.0|-16.0|-12.0|8.0|16.0|12.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Vulture|1.0|0.0|0.0
cam_aim||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Cam Aim|0.5|0.5|0.5
cam_position||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Cam Position|0.5|0.5|0.5
corpse_male1|models/npcs/mcorps.md2|1.0|1.0|1.0|general|-6.0|-6.0|-34.0|6.0|6.0|27.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Male Corpse 1|1.0|0.5|0.5
corpse_male2|models/npcs/mcorps.md2|1.0|1.0|1.0|general|-18.0|-11.0|-30.0|16.0|3.0|-13.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Male Corpse 2|1.0|0.5|0.5
corpse_male3|models/npcs/mcorps.md2|1.0|1.0|1.0|general|-30.0|-10.0|-30.0|32.0|10.0|-12.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Male Corpse 3|1.0|0.5|0.5
corpse_male4|models/npcs/mcorps.md2|1.0|1.0|1.0|general|-19.0|-11.0|-30.0|17.0|11.0|0.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Male Corpse 4|1.0|0.5|0.5
corpse_male5|models/npcs/mcorps.md2|1.0|1.0|1.0|general|-27.0|-16.0|-29.0|26.0|11.0|-11.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Male Corpse 5|1.0|0.5|0.5
corpse_male6|models/npcs/mcorps.md2|1.0|1.0|1.0|general|-30.0|-14.0|-30.0|30.0|14.0|17.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Male Corpse 6|1.0|0.5|0.5
corpse_male7|models/npcs/mcorps.md2|1.0|1.0|1.0|general|-8.0|-12.0|-34.0|5.0|12.0|31.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Male Corpse 7|1.0|0.5|0.5
effect_ripple|models/effects/ripple.md2|1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Effects Ripple|1.0|1.0|0.0
effect_spirting||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Effects Spirting|1.0|1.0|0.0
func_dig||1.0|1.0|1.0|general|0|0|0|0|0|0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Diggable brush|0.0|0.5|0.8
item_armor||1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Ancestral Armor|0.3|0.3|1.0
item_b_flask|models/objects/flask.md2|1.0|1.0|1.0|general|-4.0|-4.0|-6.0|4.0|4.0|6.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Bile Flask|0.3|0.3|1.0
item_bl_flask|models/objects/flask.md2|1.0|1.0|1.0|general|-4.0|-4.0|-6.0|4.0|4.0|6.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Blur Flask|0.3|0.3|1.0
item_book1|models/objects/book1.md2|1.0|1.0|1.0|general|-4.0|-6.0|-2.0|4.0|6.0|2.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Book|0.3|0.3|1.0
item_bottle1|models/objects/bottle1.md2|1.0|1.0|1.0|general|-2.0|-2.0|-6.0|2.0|2.0|6.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Bottle|0.3|0.3|1.0
item_bowl|models/objects/bowl.md2|1.0|1.0|1.0|general|-8.0|-8.0|-5.0|8.0|8.0|5.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Bowl|0.3|0.3|1.0
item_bread|models/objects/bread.md2|1.0|1.0|1.0|general|-4.0|-6.0|-4.0|4.0|6.0|4.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Bread|0.3|0.3|1.0
item_h_flask|models/objects/flask.md2|1.0|1.0|1.0|general|-4.0|-4.0|-6.0|4.0|4.0|6.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Health Flask|0.3|0.3|1.0
item_leather||1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Leather Armor|0.3|0.3|1.0
item_o_flask|models/objects/flask.md2|1.0|1.0|1.0|general|-4.0|-4.0|-6.0|4.0|4.0|6.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Oil Flask|0.3|0.3|1.0
item_p_flask|models/objects/flask.md2|1.0|1.0|1.0|general|-4.0|-4.0|-6.0|4.0|4.0|6.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Poison Flask|0.3|0.3|1.0
item_q_flask|models/objects/flask.md2|1.0|1.0|1.0|general|-4.0|-4.0|-6.0|4.0|4.0|6.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Quickness Flask|0.3|0.3|1.0
item_r_flask|models/objects/flask.md2|1.0|1.0|1.0|general|-4.0|-4.0|-6.0|4.0|4.0|6.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Rejuvination Flask|0.3|0.3|1.0
item_scalemail||1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Scalemail Armor|0.3|0.3|1.0
item_shovel|models/objects/shovel.md2|1.0|1.0|1.0|general|-6.0|-6.0|-18.0|6.0|6.0|18.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Shovel|0.3|0.3|1.0
item_torch||1.0|1.0|1.0|general|-4.0|-4.0|-6.0|4.0|4.0|6.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Torch|0.3|0.3|1.0
item_vase1|models/objects/vase1.md2|1.0|1.0|1.0|general|-6.0|-6.0|-8.0|6.0|6.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Vase|0.3|0.3|1.0
item_w_flask|models/objects/flask.md2|1.0|1.0|1.0|general|-4.0|-4.0|-6.0|4.0|4.0|6.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Water Flask|0.3|0.3|1.0
key_glass|models/objects/key.md2|1.0|1.0|1.0|general|-2.0|-2.0|-4.0|2.0|2.0|4.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Glass Key|0.3|0.3|1.0
key_gold|models/objects/key.md2|1.0|1.0|1.0|general|-2.0|-2.0|-4.0|2.0|2.0|4.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Gold Key|0.3|0.3|1.0
key_metal|models/objects/key.md2|1.0|1.0|1.0|general|-2.0|-2.0|-4.0|2.0|2.0|4.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Metal Key|0.3|0.3|1.0
key_silver|models/objects/key.md2|1.0|1.0|1.0|general|-2.0|-2.0|-4.0|2.0|2.0|4.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Silver Key|0.3|0.3|1.0
keys_xxx||1.0|1.0|1.0|general|-16|-16|-16|16|16|16|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none||.5|.3|0
monster_agath|models/monsters/agath.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Agathodaemon|1.0|0.0|0.0
monster_apprentice|models/monsters/necro.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Apprentice|1.0|0.0|0.0
monster_captain|models/monsters/captain.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Captain|1.0|0.0|0.0
monster_carnivean|models/monsters/carniv.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Carnivean|1.0|0.0|0.0
monster_crescent|models/monsters/crescent.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Crescent|1.0|0.0|0.0
monster_dweller|models/monsters/dweller.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Dweller|1.0|0.0|0.0
monster_hellhound|models/monsters/hhound.md2|1.0|1.0|1.0|general|-15|-15|-23|15|15|16|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none||1|0|0
monster_merc_axe|models/monsters/merc_a.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Mercenary Axe|1.0|0.0|0.0
monster_merc_sword|models/monsters/merc_s.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Mercenary Sword|1.0|0.0|0.0
monster_merc_xbow|models/monsters/merc_x.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Mercenary Crossbow|1.0|0.0|0.0
monster_necromancer|models/monsters/necro.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Necromancer|1.0|0.0|0.0
monster_outrider|models/monsters/outrider.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Outrider|1.0|0.0|0.0
monster_pilot|models/monsters/crescent.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Pilot|1.0|0.0|0.0
monster_scout|models/monsters/scout.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Scout|1.0|0.0|0.0
monster_sultan|models/npcs/insnvlg.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Sultan|1.0|0.0|0.0
monster_tenebrion|models/monsters/teneb.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Tenebrion|1.0|0.0|0.0
monster_tormentor|models/monsters/torment.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Tormentor|1.0|0.0|0.0
monster_wraith|models/monsters/wraith.md2|1.0|1.0|1.0|general|-16.0|-16.0|-24.0|16.0|16.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Wraith|1.0|0.0|0.0
npc_boy|models/npcs/boy.md2|1.0|1.0|1.0|general|-12.0|-12.0|-24.0|12.0|12.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|NPC Boy|1.0|0.5|0.0
npc_femvilgr|models/npcs/femvilg.md2|1.0|1.0|1.0|general|-12.0|-12.0|-24.0|12.0|12.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|NPC Female Villager|1.0|0.5|0.0
npc_fslave|models/npcs/fslave.md2|1.0|1.0|1.0|general|-12.0|-12.0|-24.0|12.0|12.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|NPC Female Slave|1.0|0.5|0.0
npc_girl|models/npcs/girl.md2|1.0|1.0|1.0|general|-12.0|-12.0|-24.0|12.0|12.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|NPC Girl|1.0|0.5|0.0
npc_insvilgr|models/npcs/insnvlg.md2|1.0|1.0|1.0|general|-12.0|-12.0|-24.0|12.0|12.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|NPC Insane Villager|1.0|0.5|0.0
npc_malvilgr|models/npcs/malvilg.md2|1.0|1.0|1.0|general|-12.0|-12.0|-24.0|12.0|12.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|NPC Male Villager|1.0|0.5|0.0
npc_moktosk|models/npcs/moktosk.md2|1.0|1.0|1.0|general|-12.0|-12.0|-24.0|12.0|12.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|NPC Moktar or Ratatosk|1.0|0.5|0.0
npc_mslave|models/npcs/mslave.md2;models/npcs/pickaxe.md2|1.0|1.0|1.0|general|-12.0|-12.0|-24.0|12.0|12.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|NPC Male Slave|1.0|0.5|0.0
npc_worker|models/npcs/mslave.md2|1.0|1.0|1.0|general|-12.0|-12.0|-24.0|12.0|12.0|32.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|NPC Worker|1.0|0.5|0.0
object_banner|models/objects/banner.md2|1.0|1.0|1.0|general|-2.0|-4.0|-52.0|2.0|4.0|52.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Banner|1.0|0.0|0.0
object_barrel|models/objects/barrel.md2|1.0|1.0|1.0|general|-10.0|-10.0|-14.0|10.0|10.0|14.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Barrel|0.3|0.3|1.0
object_big_fire|models/objects/bigfire.md2|1.0|1.0|1.0|general|-10.0|-10.0|-9.0|10.0|10.0|4.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Big Fire|1.0|0.0|0.0
object_campfire|models/objects/campfire.md2|1.0|1.0|1.0|general|-10.0|-10.0|-5.0|10.0|10.0|5.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Campfire|0.3|0.3|1.0
object_cart||1.0|1.0|1.0|general|-20.0|-20.0|-20.0|20.0|20.0|20.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Cart|0.3|0.3|1.0
object_cauldron|models/objects/cauldron.md2|1.0|1.0|1.0|general|-8.0|-11.0|-8.0|8.0|11.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Cauldron|0.3|0.3|1.0
object_chest1|models/objects/chest1.md2|1.0|1.0|1.0|general|-7.0|-12.0|-7.0|7.0|12.0|7.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Chest|0.3|0.3|1.0
object_demonorb|models/objects/demonorb.md2|1.0|1.0|1.0|general|-8|-8|-8|8|8|8|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none||1|0|0
object_flag|models/objects/flag.md2|1.0|1.0|1.0|general|-20.0|-4.0|-8.0|20.0|4.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Flag|1.0|1.0|0.0
object_flame1|models/objects/flame1.md2|1.0|1.0|1.0|general|-3.0|-3.0|-6.0|3.0|3.0|11.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Flame|1.0|1.0|0.0
object_goyle1|models/objects/goyle.md2|1.0|1.0|1.0|general|-18|-18|-45|18|18|17|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none||1|.5|.5
object_goyle2|models/objects/goyle.md2|1.0|1.0|1.0|general|-16|-16|-45|16|16|8|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none||1|.5|.5
object_goyle3|models/objects/goyle.md2|1.0|1.0|1.0|general|-12|-12|-45|12|12|35|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none||1|.5|.5
object_goyle4|models/objects/goyle.md2|1.0|1.0|1.0|general|-12|-12|-45|12|12|35|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none||1|.5|.5
object_goyle5|models/objects/goyle.md2|1.0|1.0|1.0|general|-20|-20|-45|20|20|0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none||1|.5|.5
object_pennant|models/objects/pennant.md2|1.0|1.0|1.0|general|-8.0|-50.0|-14.0|8.0|50.0|4.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Pennant|1.0|0.0|0.0
object_statue|models/objects/statue.md2|1.0|1.0|1.0|general|-12.0|-12.0|-44.0|12.0|12.0|44.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Statue|1.0|0.0|0.0
object_throne|models/objects/throne.md2|1.0|1.0|1.0|general|-22.0|-22.0|-35.0|22.0|22.0|35.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Throne|1.0|0.0|0.0
object_torch|models/objects/torch.md2|1.0|1.0|1.0|general|-2.0|-3.0|-6.0|2.0|4.0|6.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Torch|1.0|1.0|0.0
plant_deadtree1|models/plants/deadtree1.md2|1.0|1.0|1.0|general|-6.0|-6.0|-47.0|6.0|6.0|47.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Dead Tree 1|0.0|1.0|0.0
plant_deadtree2|models/plants/deadtree2.md2|1.0|1.0|1.0|general|-6.0|-6.0|-40.0|6.0|6.0|45.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Dead Tree 2|0.0|1.0|0.0
plant_deadtree3|models/plants/deadtree3.md2|1.0|1.0|1.0|general|-8.0|-8.0|-78.0|4.0|4.0|80.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Dead Tree 3|0.0|1.0|0.0
plant_deadtree4|models/plants/deadtree4.md2|1.0|1.0|1.0|general|-8.0|-8.0|-80.0|8.0|8.0|84.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Dead Tree 4|0.0|1.0|0.0
plant_plant1|models/plants/plant.md2|1.0|1.0|1.0|general|-12.0|-5.0|-14.0|11.0|6.0|13.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Plant 1|0.0|1.0|0.0
plant_plant2|models/plants/plant.md2|1.0|1.0|1.0|general|-9.0|-9.0|-9.0|9.0|9.0|9.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Plant 2|0.0|1.0|0.0
plant_plant3|models/plants/plant.md2|1.0|1.0|1.0|general|-19.0|-19.0|-1.0|19.0|19.0|1.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Plant 3|0.0|1.0|0.0
plant_plant4|models/plants/plant.md2|1.0|1.0|1.0|general|-24.0|-14.0|-1.0|24.0|14.0|1.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Plant 4|0.0|1.0|0.0
plant_plant5|models/plants/plant.md2|1.0|1.0|1.0|general|-1.0|-24.0|-12.0|1.0|24.0|12.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Plant 5|0.0|1.0|0.0
plant_plant6|models/plants/plant.md2|1.0|1.0|1.0|general|-1.0|-8.0|-20.0|1.0|8.0|20.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Plant 6|0.0|1.0|0.0
plant_plant7|models/plants/plant.md2|1.0|1.0|1.0|general|-20.0|-20.0|-12.0|20.0|20.0|12.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Plant 7|0.0|1.0|0.0
plant_plant8|models/plants/plant.md2|1.0|1.0|1.0|general|-10.0|-20.0|-8.0|10.0|20.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Plant 8|0.0|1.0|0.0
plant_tallbush|models/plants/tallbush.md2|1.0|1.0|1.0|general|-17.0|-19.0|-27.0|17.0|19.0|27.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Tall Bush|0.0|1.0|0.0
plant_tree1|models/plants/tree1.md2|1.0|1.0|1.0|general|-3.0|-3.0|-46.0|10.0|10.0|44.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Tree 1|0.0|1.0|0.0
plant_tree2|models/plants/tree2.md2|1.0|1.0|1.0|general|-10.0|-10.0|-94.0|10.0|10.0|90.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Tree 2|0.0|1.0|0.0
plant_widebush|models/plants/widebush.md2|1.0|1.0|1.0|general|-17.0|-17.0|-15.0|17.0|17.0|15.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Wide Bush|0.0|1.0|0.0
point_flee||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Point Flee|0.5|0.3|0.0
target_debris||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Target debris|1.0|0.0|0.0
target_gsm||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Target GSM|0.39|0.78|0.2
target_interaction||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Spawn conversation session|1.0|0.0|1.0
trap_arrow||1.0|1.0|1.0|general|0|0|0|0|0|0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Arrow Trap|0.0|0.5|0.88
trigger_cam||1.0|1.0|1.0|general|0|0|0|0|0|0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Cam trigger|0.5|0.5|0.5
trigger_GSM||1.0|1.0|1.0|general|0|0|0|0|0|0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|GSM Trigger|0.5|0.5|0.5
weapon_3gun|models/weapons/g_3gun.md2|1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Triple Flintlock|1.0|0.5|0.0
weapon_bow|models/weapons/g_bow.md2|1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Bow|1.0|0.5|0.0
weapon_rifle|models/weapons/g_rifle.md2|1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Blunderbuss|1.0|0.5|0.0
weapon_sword|models/weapons/g_sword.md2|1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Ancestral Sword|1.0|0.5|0.0
weapon_xbow|models/weapons/g_xbow.md2|1.0|1.0|1.0|general|-16.0|-16.0|-16.0|16.0|16.0|16.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Crossbow|1.0|0.5|0.0