Re-fixed the menus and enabled another font drawing function.

Fixed Profile Loading/Saving (had to disable debug mode).
This commit is contained in:
Steven Fuller 2001-11-05 02:47:58 +00:00 committed by Patryk Obara
parent 442b6b52ea
commit 06371ecc45
6 changed files with 111 additions and 23 deletions

7
README
View file

@ -44,13 +44,18 @@ the CFLAGS line (the one that's uncommented) in the Makefile. Rename all game
files lowercase. Be sure to install SDL 1.2 (http://www.libsdl.org), nasm files lowercase. Be sure to install SDL 1.2 (http://www.libsdl.org), nasm
0.98, and the latest OpenAL CVS (http://www.openal.org). 0.98, and the latest OpenAL CVS (http://www.openal.org).
Create the MPConfig and User_Profiles directories if they do not exist.
(Note: Windows profiles probably do not work in Linux and vice versa)
If you have the regular edition, add -DREGULAR_EDITION to CFLAGS. If you have the regular edition, add -DREGULAR_EDITION to CFLAGS.
relnev:~/avp/AvP Demo 3 - Alien$ ls relnev:~/avp/AvP Demo 3 - Alien$ ls
aenglish.txt alienavp_huds/ alienfastfile/ avp_rifs/ aenglish.txt alienavp_huds/ alienfastfile/ avp_rifs/ MPConfig/
User_Profiles/
relnev:~/avp/Gold Edition$ ls relnev:~/avp/Gold Edition$ ls
avp_huds/ avp_rifs/ cd tracks.txt default.cfg fastfile/ language.txt avp_huds/ avp_rifs/ cd tracks.txt default.cfg fastfile/ language.txt
MPConfig/ User_Profiles/
Support for the demo is not quite complete (some sounds are missing and some Support for the demo is not quite complete (some sounds are missing and some
text is incorrect/missing). text is incorrect/missing).

View file

@ -22,9 +22,9 @@ extern char MP_SessionName[];
extern char MP_Config_Description[]; extern char MP_Config_Description[];
#define MP_CONFIG_DIR "MPConfig" #define MP_CONFIG_DIR "MPConfig"
#define MP_CONFIG_WILDCARD "MPConfig\\*.cfg" #define MP_CONFIG_WILDCARD "MPConfig/*.cfg"
#define SKIRMISH_CONFIG_WILDCARD "MPConfig\\*.skirmish_cfg" #define SKIRMISH_CONFIG_WILDCARD "MPConfig/.skirmish_cfg"
static List<char*> ConfigurationFilenameList; static List<char*> ConfigurationFilenameList;
static List<char*> ConfigurationLocalisedFilenameList; static List<char*> ConfigurationLocalisedFilenameList;
@ -199,9 +199,9 @@ const char* GetMultiplayerConfigDescription(int index)
FILE* file; FILE* file;
char filename[200]; char filename[200];
if(netGameData.skirmishMode) if(netGameData.skirmishMode)
sprintf(filename,"%s\\%s.skirmish_cfg",MP_CONFIG_DIR,name); sprintf(filename,"%s/%s.skirmish_cfg",MP_CONFIG_DIR,name);
else else
sprintf(filename,"%s\\%s.cfg",MP_CONFIG_DIR,name); sprintf(filename,"%s/%s.cfg",MP_CONFIG_DIR,name);
file=fopen(filename,"rb"); file=fopen(filename,"rb");
if(!file) if(!file)
@ -239,9 +239,9 @@ void LoadMultiplayerConfiguration(const char* name)
FILE* file; FILE* file;
char filename[200]; char filename[200];
if(netGameData.skirmishMode) if(netGameData.skirmishMode)
sprintf(filename,"%s\\%s.skirmish_cfg",MP_CONFIG_DIR,name); sprintf(filename,"%s/%s.skirmish_cfg",MP_CONFIG_DIR,name);
else else
sprintf(filename,"%s\\%s.cfg",MP_CONFIG_DIR,name); sprintf(filename,"%s/%s.cfg",MP_CONFIG_DIR,name);
file=fopen(filename,"rb"); file=fopen(filename,"rb");
if(!file) return; if(!file) return;
@ -350,9 +350,9 @@ void SaveMultiplayerConfiguration(const char* name)
FILE* file; FILE* file;
char filename[200]; char filename[200];
if(netGameData.skirmishMode) if(netGameData.skirmishMode)
sprintf(filename,"%s\\%s.skirmish_cfg",MP_CONFIG_DIR,name); sprintf(filename,"%s/%s.skirmish_cfg",MP_CONFIG_DIR,name);
else else
sprintf(filename,"%s\\%s.cfg",MP_CONFIG_DIR,name); sprintf(filename,"%s/%s.cfg",MP_CONFIG_DIR,name);
CreateDirectory(MP_CONFIG_DIR,0); CreateDirectory(MP_CONFIG_DIR,0);
file=fopen(filename,"wb"); file=fopen(filename,"wb");
@ -449,16 +449,16 @@ void DeleteMultiplayerConfigurationByIndex(int index)
char filename[200]; char filename[200];
if(netGameData.skirmishMode) if(netGameData.skirmishMode)
sprintf(filename,"%s\\%s.skirmish_cfg",MP_CONFIG_DIR,ConfigurationFilenameList[index]); sprintf(filename,"%s/%s.skirmish_cfg",MP_CONFIG_DIR,ConfigurationFilenameList[index]);
else else
sprintf(filename,"%s\\%s.cfg",MP_CONFIG_DIR,ConfigurationFilenameList[index]); sprintf(filename,"%s/%s.cfg",MP_CONFIG_DIR,ConfigurationFilenameList[index]);
DeleteFile(filename); DeleteFile(filename);
} }
#define IP_ADDRESS_DIR "IP_Address" #define IP_ADDRESS_DIR "IP_Address"
#define IP_ADDRESS_WILDCARD "IP_Address\\*.IP Address" #define IP_ADDRESS_WILDCARD "IP_Address/*.IP Address"
static List<char*> IPAddFilenameList; static List<char*> IPAddFilenameList;
@ -563,7 +563,7 @@ void SaveIPAddress(const char* name,const char* address)
FILE* file; FILE* file;
char filename[200]; char filename[200];
sprintf(filename,"%s\\%s.IP Address",IP_ADDRESS_DIR,name); sprintf(filename,"%s/%s.IP Address",IP_ADDRESS_DIR,name);
CreateDirectory(IP_ADDRESS_DIR,0); CreateDirectory(IP_ADDRESS_DIR,0);
file=fopen(filename,"wb"); file=fopen(filename,"wb");
@ -584,7 +584,7 @@ void LoadIPAddress(const char* name)
FILE* file; FILE* file;
char filename[200]; char filename[200];
sprintf(filename,"%s\\%s.IP Address",IP_ADDRESS_DIR,name); sprintf(filename,"%s/%s.IP Address",IP_ADDRESS_DIR,name);
file=fopen(filename,"rb"); file=fopen(filename,"rb");
if(!file) return; if(!file) return;

View file

@ -20,6 +20,11 @@ extern "C"
#include "pldnet.h" #include "pldnet.h"
#include <time.h> #include <time.h>
#include <glob.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
static int LoadUserProfiles(void); static int LoadUserProfiles(void);
static void EmptyUserProfilesList(void); static void EmptyUserProfilesList(void);
@ -199,7 +204,79 @@ static int ProfileIsMoreRecent(AVP_USER_PROFILE *profilePtr, AVP_USER_PROFILE *p
static int LoadUserProfiles(void) static int LoadUserProfiles(void)
{ {
fprintf(stderr, "STUB: LoadUserProfiles()\n"); glob_t globbuf;
const char* load_name=USER_PROFILES_WILDCARD_NAME;
if (glob(load_name, 0, NULL, &globbuf))
return 0;
// get any path in the load_name
int nPathLen = 0;
char * pColon = strrchr(load_name,':');
if (pColon) nPathLen = pColon - load_name + 1;
char * pBackSlash = strrchr(load_name,'\\');
if (pBackSlash)
{
int nLen = pBackSlash - load_name + 1;
if (nLen > nPathLen) nPathLen = nLen;
}
char * pSlash = strrchr(load_name,'/');
if (pSlash)
{
int nLen = pSlash - load_name + 1;
if (nLen > nPathLen) nPathLen = nLen;
}
for (int i = 0; i < globbuf.gl_pathc; i++) {
struct stat buf;
if (stat(globbuf.gl_pathv[i], &buf) == -1)
continue;
if (S_ISREG(buf.st_mode) && (access(globbuf.gl_pathv[i], R_OK) == 0))
{
char * pszFullPath = new char [nPathLen+strlen(globbuf.gl_pathv[i])+1];
// strncpy(pszFullPath,load_name,nPathLen);
strcpy(pszFullPath /* +nPathLen */, globbuf.gl_pathv[i]);
//make sure the file is a rif file
HANDLE rif_file;
rif_file = CreateFile (pszFullPath, GENERIC_READ, 0, 0, OPEN_EXISTING,
FILE_FLAG_RANDOM_ACCESS, 0);
if(rif_file==INVALID_HANDLE_VALUE)
{
// printf("couldn't open %s\n",pszFullPath);
delete[] pszFullPath;
continue;
}
AVP_USER_PROFILE *profilePtr = new AVP_USER_PROFILE;
unsigned long bytes_read;
if (!ReadFile(rif_file, profilePtr, sizeof(AVP_USER_PROFILE), &bytes_read, 0))
{
CloseHandle (rif_file);
delete[] pszFullPath;
delete profilePtr;
continue;
}
#if 0
FILETIME ftLocal;
FileTimeToLocalFileTime(&wfd.ftLastWriteTime,&ftLocal);
FileTimeToSystemTime(&ftLocal,&profilePtr->TimeLastUpdated);
profilePtr->FileTime = ftLocal;
#endif
InsertProfileIntoList(profilePtr);
CloseHandle (rif_file);
delete[] pszFullPath;
}
}
globfree(&globbuf);
#if 0 #if 0
const char* load_name=USER_PROFILES_WILDCARD_NAME; const char* load_name=USER_PROFILES_WILDCARD_NAME;
// allow a wildcard search // allow a wildcard search
@ -435,4 +512,4 @@ extern void FixCheatModesInUserProfile(AVP_USER_PROFILE *profilePtr)
} }
}; // extern "C" }; // extern "C"

View file

@ -144,8 +144,6 @@ typedef struct
/* TODO: dir separator */
#define USER_PROFILES_PATH "User_Profiles/" #define USER_PROFILES_PATH "User_Profiles/"
#define USER_PROFILES_WILDCARD_NAME "User_Profiles/*.prf" #define USER_PROFILES_WILDCARD_NAME "User_Profiles/*.prf"
#define USER_PROFILES_SUFFIX ".prf" #define USER_PROFILES_SUFFIX ".prf"

View file

@ -100,7 +100,7 @@ int SetSoftVideoMode(int Width, int Height, int Depth)
// SDL_WM_GrabInput(SDL_GRAB_ON); // SDL_WM_GrabInput(SDL_GRAB_ON);
// SDL_ShowCursor(0); // SDL_ShowCursor(0);
if (isfull) { if (isfull && !(surface->flags & SDL_FULLSCREEN)) {
SDL_WM_ToggleFullScreen(surface); SDL_WM_ToggleFullScreen(surface);
if (surface->flags & SDL_FULLSCREEN) if (surface->flags & SDL_FULLSCREEN)
SDL_ShowCursor(0); SDL_ShowCursor(0);
@ -166,7 +166,7 @@ int SetOGLVideoMode(int Width, int Height)
// SDL_WM_GrabInput(SDL_GRAB_ON); // SDL_WM_GrabInput(SDL_GRAB_ON);
// SDL_ShowCursor(0); // SDL_ShowCursor(0);
if (isfull) { if (isfull && !(surface->flags & SDL_FULLSCREEN)) {
SDL_WM_ToggleFullScreen(surface); SDL_WM_ToggleFullScreen(surface);
if (surface->flags & SDL_FULLSCREEN) if (surface->flags & SDL_FULLSCREEN)
SDL_ShowCursor(0); SDL_ShowCursor(0);
@ -185,7 +185,8 @@ int SetOGLVideoMode(int Width, int Height)
glLoadIdentity(); glLoadIdentity();
glEnable(GL_BLEND); glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE); // glBlendFunc(GL_ONE, GL_ONE);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
glEnable(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL); glDepthFunc(GL_LEQUAL);
@ -592,7 +593,7 @@ void CheckForWindowsMessages()
MouseVelY = 0; MouseVelY = 0;
} }
if (KeyboardInput[KEY_LEFTALT] && DebouncedKeyboardInput[KEY_CR]) { if ((KeyboardInput[KEY_LEFTALT]||KeyboardInput[KEY_RIGHTALT]) && DebouncedKeyboardInput[KEY_CR]) {
SDL_GrabMode gm; SDL_GrabMode gm;
SDL_WM_ToggleFullScreen(surface); SDL_WM_ToggleFullScreen(surface);
@ -685,11 +686,12 @@ int main(int argc, char *argv[])
SetFastRandom(); SetFastRandom();
GetPathFromRegistry(); GetPathFromRegistry();
#if 0
{ {
extern int DebuggingCommandsActive; extern int DebuggingCommandsActive;
DebuggingCommandsActive = 1; DebuggingCommandsActive = 1;
} }
#endif
#if MARINE_DEMO #if MARINE_DEMO
ffInit("fastfile/mffinfo.txt","fastfile/"); ffInit("fastfile/mffinfo.txt","fastfile/");

View file

@ -137,6 +137,8 @@ int RenderMenuText(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID
int RenderMenuText_Clipped(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format, int topY, int bottomY) int RenderMenuText_Clipped(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format, int topY, int bottomY)
{ {
return Hardware_RenderSmallMenuText(textPtr, x, y, alpha, format);
fprintf(stderr, "RenderMenuText_Clipped(%s, %d, %d, %d, %d, %d, %d)\n", textPtr, x, y, alpha, format, topY, bottomY); fprintf(stderr, "RenderMenuText_Clipped(%s, %d, %d, %d, %d, %d, %d)\n", textPtr, x, y, alpha, format, topY, bottomY);
return 0; return 0;
@ -282,7 +284,11 @@ void InitialiseMenuGfx()
} }
glEnable(GL_BLEND); glEnable(GL_BLEND);
// glBlendFunc(GL_ONE, GL_ONE);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
glDisable(GL_DEPTH_TEST); glDisable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_2D);
glClear(GL_COLOR_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT);