mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-01-17 22:50:51 +00:00
temporarily remove location support from nq (and location markers from both)
until client code has been cleaned up more
This commit is contained in:
parent
7d06343b2f
commit
905f1826eb
6 changed files with 10 additions and 301 deletions
|
@ -178,7 +178,7 @@ R_RotateForEntity (entity_t *e)
|
|||
// ZOID: fixed z angle
|
||||
qfglRotatef (e->angles[2], 1, 0, 0);
|
||||
}
|
||||
|
||||
#if 0
|
||||
/*
|
||||
R_ShowNearestLoc
|
||||
|
||||
|
@ -210,7 +210,7 @@ R_ShowNearestLoc (void)
|
|||
(*R_WizSpikeEffect) (trueloc);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
/*
|
||||
R_DrawEntitiesOnList
|
||||
|
||||
|
@ -221,10 +221,8 @@ R_DrawEntitiesOnList (void)
|
|||
{
|
||||
int i;
|
||||
|
||||
if (!r_drawentities->int_val) {
|
||||
R_ShowNearestLoc();
|
||||
if (!r_drawentities->int_val)
|
||||
return;
|
||||
}
|
||||
|
||||
// LordHavoc: split into 3 loops to simplify state changes
|
||||
for (i = 0; i < r_numvisedicts; i++) {
|
||||
|
|
|
@ -453,7 +453,7 @@ R_MarkLeaves (void)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void
|
||||
R_ShowNearestLoc (void)
|
||||
{
|
||||
|
@ -478,6 +478,7 @@ R_ShowNearestLoc (void)
|
|||
R_RunParticleEffect(trueloc, vec3_origin, 252, 10);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
R_DrawEntitiesOnList (void)
|
||||
|
@ -491,10 +492,8 @@ R_DrawEntitiesOnList (void)
|
|||
vec3_t dist;
|
||||
float add;
|
||||
|
||||
if (!r_drawentities->int_val) {
|
||||
R_ShowNearestLoc();
|
||||
if (!r_drawentities->int_val)
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < r_numvisedicts; i++) {
|
||||
currententity = r_visedicts[i];
|
||||
|
|
|
@ -473,7 +473,7 @@ R_MarkLeaves (void)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void
|
||||
R_ShowNearestLoc (void)
|
||||
{
|
||||
|
@ -497,7 +497,7 @@ R_ShowNearestLoc (void)
|
|||
R_RunParticleEffect(trueloc, vec3_origin, 252, 10);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
static void
|
||||
R_DrawEntitiesOnList (void)
|
||||
{
|
||||
|
@ -510,10 +510,8 @@ R_DrawEntitiesOnList (void)
|
|||
vec3_t dist;
|
||||
float add;
|
||||
|
||||
if (!r_drawentities->int_val) {
|
||||
R_ShowNearestLoc();
|
||||
if (!r_drawentities->int_val)
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < r_numvisedicts; i++) {
|
||||
currententity = r_visedicts[i];
|
||||
|
|
|
@ -48,7 +48,7 @@ noinst_LIBRARIES= @nq_libs@ $(asm)
|
|||
EXTRA_LIBRARIES=libasm.a libnq_client.a libnq_common.a libnq_sdl.a libnq_server.a
|
||||
|
||||
libasm_a_SOURCES= worlda.S
|
||||
libnq_common_a_SOURCES=game.c locs.c world.c com.c
|
||||
libnq_common_a_SOURCES=game.c world.c com.c
|
||||
libnq_sdl_a_SOURCES= sys_sdl.c
|
||||
libnq_sdl_a_CFLAGS= $(SDL_CFLAGS)
|
||||
|
||||
|
|
|
@ -41,7 +41,6 @@ static __attribute__ ((unused)) const char rcsid[] =
|
|||
#include "QF/draw.h"
|
||||
#include "QF/input.h"
|
||||
#include "QF/keys.h"
|
||||
#include "QF/locs.h"
|
||||
#include "QF/msg.h"
|
||||
#include "QF/plugin.h"
|
||||
#include "QF/progs.h"
|
||||
|
@ -62,10 +61,6 @@ static __attribute__ ((unused)) const char rcsid[] =
|
|||
#include "sv_progs.h"
|
||||
#include "view.h"
|
||||
|
||||
#define U __attribute__ ((unused))
|
||||
static U location_t * (* const _locs_find) (const vec3_t target) = locs_find;
|
||||
#undef U
|
||||
|
||||
|
||||
/*
|
||||
A server can always be started, even if the system started out as a client
|
||||
|
|
281
nq/source/locs.c
281
nq/source/locs.c
|
@ -1,281 +0,0 @@
|
|||
/*
|
||||
locs.c
|
||||
|
||||
Parsing and handling of location files.
|
||||
|
||||
Copyright (C) 2000 Anton Gavrilov (tonik@quake.ru)
|
||||
|
||||
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:
|
||||
|
||||
Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330
|
||||
Boston, MA 02111-1307, USA
|
||||
|
||||
*/
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
static __attribute__ ((unused)) const char rcsid[] =
|
||||
"$Id$";
|
||||
|
||||
#ifdef HAVE_STRING_H
|
||||
# include <string.h>
|
||||
#endif
|
||||
#ifdef HAVE_STRINGS_H
|
||||
# include <strings.h>
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# define _POSIX_
|
||||
#endif
|
||||
|
||||
#include <limits.h>
|
||||
|
||||
#include "QF/console.h"
|
||||
#include "QF/locs.h"
|
||||
#include "QF/qtypes.h"
|
||||
#include "QF/quakefs.h"
|
||||
#include "QF/sys.h"
|
||||
|
||||
#include "client.h"
|
||||
#include "compat.h"
|
||||
|
||||
#define LOCATION_BLOCK 128 // 128 locations per block.
|
||||
|
||||
location_t **locations = NULL;
|
||||
int locations_alloced = 0;
|
||||
int locations_count = 0;
|
||||
int location_blocks = 0;
|
||||
|
||||
int
|
||||
locs_nearest (const vec3_t loc)
|
||||
{
|
||||
location_t *cur;
|
||||
float best_distance = 9999999, distance;
|
||||
int i, j = -1;
|
||||
|
||||
for (i = 0; i < locations_count; i++) {
|
||||
cur = locations[i];
|
||||
distance = VectorDistance_fast (loc, cur->loc);
|
||||
if ((distance < best_distance)) {
|
||||
best_distance = distance;
|
||||
j = i;
|
||||
}
|
||||
}
|
||||
return (j);
|
||||
}
|
||||
|
||||
location_t *
|
||||
locs_find (const vec3_t target)
|
||||
{
|
||||
int i;
|
||||
i = locs_nearest (target);
|
||||
if (i == -1)
|
||||
return NULL;
|
||||
return locations[i];
|
||||
}
|
||||
|
||||
static void
|
||||
locs_more (void)
|
||||
{
|
||||
size_t size;
|
||||
|
||||
location_blocks++;
|
||||
locations_alloced += LOCATION_BLOCK;
|
||||
size = (sizeof (location_t *) * LOCATION_BLOCK * location_blocks);
|
||||
|
||||
if (locations)
|
||||
locations = realloc (locations, size);
|
||||
else
|
||||
locations = malloc (size);
|
||||
|
||||
if (!locations)
|
||||
Sys_Error ("ERROR! Can not alloc memory for location block!");
|
||||
}
|
||||
|
||||
void
|
||||
locs_add (const vec3_t location, const char *name)
|
||||
{
|
||||
int num;
|
||||
|
||||
locations_count++;
|
||||
if (locations_count >= locations_alloced)
|
||||
locs_more ();
|
||||
|
||||
num = locations_count - 1;
|
||||
|
||||
locations[num] = malloc (sizeof (location_t));
|
||||
SYS_CHECKMEM (locations[num]);
|
||||
|
||||
locations[num]->loc[0] = location[0];
|
||||
locations[num]->loc[1] = location[1];
|
||||
locations[num]->loc[2] = location[2];
|
||||
locations[num]->name = strdup (name);
|
||||
if (!locations[num]->name)
|
||||
Sys_Error ("locs_add: Can't strdup name!");
|
||||
}
|
||||
|
||||
void
|
||||
locs_load (const char *filename)
|
||||
{
|
||||
QFile *file;
|
||||
const char *line;
|
||||
char *t1, *t2;
|
||||
vec3_t loc;
|
||||
char tmp[PATH_MAX];
|
||||
int templength = 0;
|
||||
|
||||
snprintf (tmp, sizeof(tmp), "maps/%s", filename);
|
||||
templength = QFS_FOpenFile (tmp, &file);
|
||||
if (!file) {
|
||||
Con_Printf ("Couldn't load %s\n", tmp);
|
||||
return;
|
||||
}
|
||||
while ((line = Qgetline (file))) {
|
||||
if (line[0] == '#')
|
||||
continue;
|
||||
|
||||
loc[0] = strtol (line, &t1, 0) * (1.0 / 8);
|
||||
if (line == t1)
|
||||
continue;
|
||||
loc[1] = strtol (t1, &t2, 0) * (1.0 / 8);
|
||||
if (t2 == t1)
|
||||
continue;
|
||||
loc[2] = strtol (t2, &t1, 0) * (1.0 / 8);
|
||||
if ((t1 == t2) || (strlen (t1) < 2))
|
||||
continue;
|
||||
t1++;
|
||||
t2 = strrchr (t1, '\n');
|
||||
if (t2) {
|
||||
t2[0] = '\0';
|
||||
// handle dos format lines (QFS_FOpenFile is binary only)
|
||||
// and unix is effectively binary only anyway
|
||||
while (t2 > t1 && t2[-1] == '\r') {
|
||||
t2[-1] = '\0';
|
||||
t2--;
|
||||
}
|
||||
}
|
||||
locs_add (loc, t1);
|
||||
}
|
||||
Qclose (file);
|
||||
}
|
||||
|
||||
void
|
||||
locs_reset (void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < locations_count; i++) {
|
||||
free ((void *) locations[i]->name);
|
||||
free ((void *) locations[i]);
|
||||
locations[i] = NULL;
|
||||
}
|
||||
|
||||
free (locations);
|
||||
locations_alloced = 0;
|
||||
locations_count = 0;
|
||||
locations = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
locs_save (const char *filename, qboolean gz)
|
||||
{
|
||||
QFile *locfd;
|
||||
int i;
|
||||
char locfile[MAX_OSPATH];
|
||||
|
||||
if (gz) {
|
||||
if (strncmp (filename + strlen (filename) - 3, ".gz", 3) != 0)
|
||||
snprintf (locfile, sizeof (locfile), "%s.gz", filename);
|
||||
else
|
||||
strcpy (locfile, filename);
|
||||
locfd = Qopen (locfile,"z9w+");
|
||||
} else
|
||||
locfd = Qopen (filename,"w+");
|
||||
if (locfd == 0) {
|
||||
Con_Printf ("ERROR: Unable to open %s\n", filename);
|
||||
return;
|
||||
}
|
||||
for (i=0; i < locations_count; i++)
|
||||
Qprintf (locfd, "%.0f %.0f %.0f %s\n", locations[i]->loc[0] * 8,
|
||||
locations[i]->loc[1] * 8, locations[i]->loc[2] * 8,
|
||||
locations[i]->name);
|
||||
Qclose (locfd);
|
||||
}
|
||||
|
||||
void
|
||||
locs_mark (const vec3_t loc, const char *desc)
|
||||
{
|
||||
locs_add (loc,desc);
|
||||
Con_Printf ("Marked current location: %s\n",desc);
|
||||
}
|
||||
|
||||
/*
|
||||
locs_edit
|
||||
call with description to modify location description
|
||||
call with NULL description to modify location vectors
|
||||
*/
|
||||
|
||||
void
|
||||
locs_edit (const vec3_t loc, const char *desc)
|
||||
{
|
||||
int i;
|
||||
if (locations_count) {
|
||||
i = locs_nearest (loc);
|
||||
if (!desc) {
|
||||
VectorCopy (loc,locations[i]->loc);
|
||||
Con_Printf ("Moving location marker for %s\n",
|
||||
locations[i]->name);
|
||||
} else {
|
||||
free ((void *) locations[i]->name);
|
||||
locations[i]->name = strdup (desc);
|
||||
Con_Printf ("Changing location description to %s\n",
|
||||
locations[i]->name);
|
||||
}
|
||||
} else
|
||||
Con_Printf ("Error: No location markers to modify!\n");
|
||||
}
|
||||
|
||||
void
|
||||
locs_del (const vec3_t loc)
|
||||
{
|
||||
int i;
|
||||
if (locations_count) {
|
||||
i = locs_nearest (loc);
|
||||
Con_Printf ("Removing location marker for %s\n",
|
||||
locations[i]->name);
|
||||
free ((void *) locations[i]->name);
|
||||
free ((void *) locations[i]);
|
||||
locations_count--;
|
||||
for (; i < locations_count; i++)
|
||||
locations[i] = locations[i+1];
|
||||
locations[locations_count] = NULL;
|
||||
} else
|
||||
Con_Printf ("Error: No location markers to remove\n");
|
||||
}
|
||||
|
||||
void
|
||||
map_to_loc (const char *mapname, char *filename)
|
||||
{
|
||||
char *t1;
|
||||
|
||||
strcpy (filename, mapname);
|
||||
t1 = strrchr (filename, '.');
|
||||
if (!t1)
|
||||
Sys_Error ("Can't find .!");
|
||||
t1++;
|
||||
strcpy (t1, "loc");
|
||||
}
|
Loading…
Reference in a new issue