Most of the menu code now builds.

This commit is contained in:
Steven Fuller 2001-10-14 18:21:53 +00:00 committed by Patryk Obara
parent b7e1c7cb2f
commit 0b37ed3309
10 changed files with 1052 additions and 326 deletions

View file

@ -21,7 +21,7 @@ AVP = ai_sight.c avpview.c bh_agun.c bh_ais.c bh_alien.c bh_binsw.c bh_cable.c b
SHAPES = cube.c
SUPPORT = consbind.cpp consbtch.cpp coordstr.cpp daemon.cpp indexfnt.cpp r2base.cpp r2pos666.cpp reflist.cpp refobj.cpp rentrntq.cpp scstring.cpp strtab.cpp strutil.c trig666.cpp wrapstr.cpp
AVPWIN95 = avpchunk.cpp cheat.c chtcodes.cpp d3d_hud.cpp ddplat.cpp endianio.c ffread.cpp ffstdio.cpp gammacontrol.cpp hierplace.cpp iofocus.cpp jsndsup.cpp kzsort.c langplat.c modcmds.cpp npcsetup.cpp objsetup.cpp pathchnk.cpp platsup.c pldghost.c pldnet.c progress_bar.cpp projload.cpp scrshot.cpp strachnk.cpp system.c usr_io.c vision.c
FRONTEND = avp_envinfo.c avp_intro.cpp avp_menudata.c
FRONTEND = avp_envinfo.c avp_intro.cpp avp_menudata.c avp_menus.c avp_mp_config.cpp avp_userprofile.cpp
GADGETS = ahudgadg.cpp conscmnd.cpp conssym.cpp consvar.cpp gadget.cpp hudgadg.cpp rootgadg.cpp t_ingadg.cpp teletype.cpp textexp.cpp textin.cpp trepgadg.cpp
WIN95 = animchnk.cpp animobs.cpp awtexld.cpp awbmpld.cpp awiffld.cpp awpnmld.cpp bmpnames.cpp chnkload.cpp chnktexi.cpp chnktype.cpp chunk.cpp chunkpal.cpp db.c debuglog.cpp dummyobjectchunk.cpp enumchnk.cpp enumsch.cpp envchunk.cpp fail.c fragchnk.cpp gsprchnk.cpp hierchnk.cpp huffman.cpp iff.cpp iff_ilbm.cpp ilbm_ext.cpp io.c list_tem.cpp ltchunk.cpp media.cpp mishchnk.cpp obchunk.cpp oechunk.cpp our_mem.c plat_shp.c plspecfn.c shpchunk.cpp sndchunk.cpp sprchunk.cpp string.cpp texio.c toolchnk.cpp txioctrl.cpp wpchunk.cpp zsp.cpp

View file

@ -31,13 +31,16 @@
#include "bh_agun.h"
#include "weapons.h"
LogFile ConsoleLogFile("ConsoleLog.txt");
#if 0
static LogFile ConsoleLogFile("ConsoleLog.txt");
#endif
extern "C"
{
int LogConsoleTextToFile;
extern void OutputBugReportToConsoleLogfile(char *messagePtr)
{
#if 0
extern MODULE *playerPherModule;
extern struct Target PlayersTarget;
@ -78,23 +81,17 @@ extern void OutputBugReportToConsoleLogfile(char *messagePtr)
ConsoleLogFile.lprintf("Player's Module Coords: %d %d %d\n",playerPherModule->m_world.vx,playerPherModule->m_world.vy,playerPherModule->m_world.vz);
ConsoleLogFile.lprintf("Player's Target: %d %d %d\n",PlayersTarget.Position.vx,PlayersTarget.Position.vy,PlayersTarget.Position.vz);
ConsoleLogFile.lprintf("\n");
#endif
}
};
extern void OutputToConsoleLogfile(char *messagePtr)
{
#if 0
if(LogConsoleTextToFile)
{
ConsoleLogFile.lprintf("%s\n", (char const*)messagePtr);
}
#endif
}
};

View file

@ -7,14 +7,11 @@
#ifndef ConsoleLog_h_included
#define ConsoleLog_h_included
extern void OutputToConsoleLogfile(char *messagePtr);
#ifdef __cplusplus
extern "C"
{
#endif
extern void OutputToConsoleLogfile(char *messagePtr);
extern void OutputBugReportToConsoleLogfile(char *messagePtr);
#ifdef __cplusplus
};

File diff suppressed because it is too large Load diff

View file

@ -36,6 +36,8 @@ AVPMENU_ELEMENT* AvPMenu_Multiplayer_LoadConfig=0;
BOOL BuildLoadMPConfigMenu()
{
int i;
//delete the old list of filenames
while(ConfigurationFilenameList.size())
{
@ -54,6 +56,9 @@ BOOL BuildLoadMPConfigMenu()
{
load_name=SKIRMISH_CONFIG_WILDCARD;
}
fprintf(stderr, "STUB: BuildLoadMPConfigMenu()\n");
#if 0
// allow a wildcard search
WIN32_FIND_DATA wfd;
@ -126,7 +131,7 @@ BOOL BuildLoadMPConfigMenu()
}
::FindClose(hFindFile);
#endif
//delete the old menu
if(AvPMenu_Multiplayer_LoadConfig) delete AvPMenu_Multiplayer_LoadConfig;
@ -138,12 +143,12 @@ BOOL BuildLoadMPConfigMenu()
//create a new menu from the list of filenames
AvPMenu_Multiplayer_LoadConfig=new AVPMENU_ELEMENT[ConfigurationFilenameList.size()+1];
for(int i=0;i<ConfigurationFilenameList.size();i++)
for(i=0;i<ConfigurationFilenameList.size();i++)
{
AvPMenu_Multiplayer_LoadConfig[i].ElementID=AVPMENU_ELEMENT_LOADMPCONFIG;
AvPMenu_Multiplayer_LoadConfig[i].TextDescription=TEXTSTRING_BLANK;
AvPMenu_Multiplayer_LoadConfig[i].MenuToGoTo=AVPMENU_MULTIPLAYER_CONFIG;
AvPMenu_Multiplayer_LoadConfig[i].TextPtr=ConfigurationLocalisedFilenameList[i];
AvPMenu_Multiplayer_LoadConfig[i].a.TextDescription=TEXTSTRING_BLANK;
AvPMenu_Multiplayer_LoadConfig[i].b.MenuToGoTo=AVPMENU_MULTIPLAYER_CONFIG;
AvPMenu_Multiplayer_LoadConfig[i].c.TextPtr=ConfigurationLocalisedFilenameList[i];
AvPMenu_Multiplayer_LoadConfig[i].HelpString=TEXTSTRING_LOADMULTIPLAYERCONFIG_HELP;
}
@ -461,6 +466,8 @@ AVPMENU_ELEMENT* AvPMenu_Multiplayer_LoadIPAddress=0;
BOOL BuildLoadIPAddressMenu()
{
int i;
//delete the old list of filenames
while(IPAddFilenameList.size())
{
@ -469,7 +476,9 @@ BOOL BuildLoadIPAddressMenu()
}
//do a search for all the addresses in the address directory
fprintf(stderr, "STUB: BuildLoadIPAddressMenu()\n");
#if 0
const char* load_name=IP_ADDRESS_WILDCARD;
// allow a wildcard search
WIN32_FIND_DATA wfd;
@ -521,7 +530,7 @@ BOOL BuildLoadIPAddressMenu()
::FindClose(hFindFile);
#endif
//delete the old menu
if(AvPMenu_Multiplayer_LoadIPAddress) delete [] AvPMenu_Multiplayer_LoadIPAddress;
@ -530,12 +539,12 @@ BOOL BuildLoadIPAddressMenu()
//create a new menu from the list of filenames
AvPMenu_Multiplayer_LoadIPAddress=new AVPMENU_ELEMENT[IPAddFilenameList.size()+1];
for(int i=0;i<IPAddFilenameList.size();i++)
for(i=0;i<IPAddFilenameList.size();i++)
{
AvPMenu_Multiplayer_LoadIPAddress[i].ElementID=AVPMENU_ELEMENT_LOADIPADDRESS;
AvPMenu_Multiplayer_LoadIPAddress[i].TextDescription=TEXTSTRING_BLANK;
AvPMenu_Multiplayer_LoadIPAddress[i].MenuToGoTo=AVPMENU_MULTIPLAYERSELECTSESSION;
AvPMenu_Multiplayer_LoadIPAddress[i].TextPtr=IPAddFilenameList[i];
AvPMenu_Multiplayer_LoadIPAddress[i].a.TextDescription=TEXTSTRING_BLANK;
AvPMenu_Multiplayer_LoadIPAddress[i].b.MenuToGoTo=AVPMENU_MULTIPLAYERSELECTSESSION;
AvPMenu_Multiplayer_LoadIPAddress[i].c.TextPtr=IPAddFilenameList[i];
AvPMenu_Multiplayer_LoadIPAddress[i].HelpString=TEXTSTRING_MULTIPLAYER_LOADADDRESS_HELP;
}
@ -610,6 +619,9 @@ void BuildMultiplayerLevelNameArray()
//first do a search for custom level rifs
// allow a wildcard search
fprintf(stderr, "STUB: BuildMultiplayerLevelNameArray()\n");
#if 0
WIN32_FIND_DATA wfd;
const char* load_name="avp_rifs\\custom\\*.rif";
@ -648,6 +660,7 @@ void BuildMultiplayerLevelNameArray()
::FindClose(hFindFile);
}
#endif
NumCustomLevels = CustomLevelNameList.size();
@ -717,36 +730,36 @@ void BuildMultiplayerLevelNameArray()
elementPtr = AvPMenu_Multiplayer_Config;
//search for the level name element
while(elementPtr->TextDescription!=TEXTSTRING_MULTIPLAYER_ENVIRONMENT)
while(elementPtr->a.TextDescription!=TEXTSTRING_MULTIPLAYER_ENVIRONMENT)
{
GLOBALASSERT(elementPtr->ElementID!=AVPMENU_ELEMENT_ENDOFMENU);
elementPtr++;
}
elementPtr->MaxSliderValue = NumMultiplayerLevels-1;
elementPtr->TextSliderStringPointer = MultiplayerLevelNames;
elementPtr->b.MaxSliderValue = NumMultiplayerLevels-1;
elementPtr->d.TextSliderStringPointer = MultiplayerLevelNames;
elementPtr = AvPMenu_Multiplayer_Config_Join;
//search for the level name element
while(elementPtr->TextDescription!=TEXTSTRING_MULTIPLAYER_ENVIRONMENT)
while(elementPtr->a.TextDescription!=TEXTSTRING_MULTIPLAYER_ENVIRONMENT)
{
GLOBALASSERT(elementPtr->ElementID!=AVPMENU_ELEMENT_ENDOFMENU);
elementPtr++;
}
elementPtr->MaxSliderValue = NumMultiplayerLevels-1;
elementPtr->TextSliderStringPointer = MultiplayerLevelNames;
elementPtr->b.MaxSliderValue = NumMultiplayerLevels-1;
elementPtr->d.TextSliderStringPointer = MultiplayerLevelNames;
elementPtr = AvPMenu_Skirmish_Config;
//search for the level name element
while(elementPtr->TextDescription!=TEXTSTRING_MULTIPLAYER_ENVIRONMENT)
while(elementPtr->a.TextDescription!=TEXTSTRING_MULTIPLAYER_ENVIRONMENT)
{
GLOBALASSERT(elementPtr->ElementID!=AVPMENU_ELEMENT_ENDOFMENU);
elementPtr++;
}
elementPtr->MaxSliderValue = NumMultiplayerLevels-1;
elementPtr->TextSliderStringPointer = MultiplayerLevelNames;
elementPtr->b.MaxSliderValue = NumMultiplayerLevels-1;
elementPtr->d.TextSliderStringPointer = MultiplayerLevelNames;
}
@ -850,4 +863,4 @@ int GetLocalMultiplayerLevelIndex(int index,char* customLevelName,int gameType)
}
};
};

View file

@ -9,7 +9,7 @@ extern "C"
#include "avp_userprofile.h"
#include "language.h"
#include "GammaControl.h"
#include "gammacontrol.h"
#include "psnd.h"
#include "cd_player.h"
@ -17,9 +17,8 @@ extern "C"
#include "ourasert.h"
// Edmond
#include "pldnet.h"
#include "dp_func.h"
#include <time.h>
#include "pldnet.h"
#include <time.h>
static int LoadUserProfiles(void);
@ -63,8 +62,11 @@ extern void ExamineSavedUserProfiles(void)
AVP_USER_PROFILE *profilePtr = new AVP_USER_PROFILE;
*profilePtr = DefaultUserProfile;
fprintf(stderr, "STUB: ExamineSavedUserProfiles()\n");
#if 0
GetLocalTime(&profilePtr->TimeLastUpdated);
SystemTimeToFileTime(&profilePtr->TimeLastUpdated,&profilePtr->FileTime);
#endif
strncpy(profilePtr->Name,GetTextString(TEXTSTRING_USERPROFILE_NEW),MAX_SIZE_OF_USERS_NAME);
profilePtr->Name[MAX_SIZE_OF_USERS_NAME]=0;
@ -178,8 +180,12 @@ static void InsertProfileIntoList(AVP_USER_PROFILE *profilePtr)
}
UserProfilesList.add_entry(profilePtr);
}
static int ProfileIsMoreRecent(AVP_USER_PROFILE *profilePtr, AVP_USER_PROFILE *profileToTestAgainstPtr)
{
fprintf(stderr, "STUB: ProfileIsMoreRecent(%p, %p)\n", profilePtr, profileToTestAgainstPtr);
return 1;
#if 0
if (CompareFileTime(&profilePtr->FileTime,&profileToTestAgainstPtr->FileTime)==1)
{
return 1;
@ -188,10 +194,13 @@ static int ProfileIsMoreRecent(AVP_USER_PROFILE *profilePtr, AVP_USER_PROFILE *p
{
return 0;
}
#endif
}
static int LoadUserProfiles(void)
{
fprintf(stderr, "STUB: LoadUserProfiles()\n");
#if 0
const char* load_name=USER_PROFILES_WILDCARD_NAME;
// allow a wildcard search
WIN32_FIND_DATA wfd;
@ -279,7 +288,7 @@ static int LoadUserProfiles(void)
}
::FindClose(hFindFile);
#endif
return 1;
}

View file

@ -234,9 +234,8 @@ void Set_Progress_Bar_Position(int pos)
{
//time to check our messages
LastSendTime=time;
#if 0 /* TODO: disabled for port */
MinimalNetCollectMessages();
#endif
//send messages , mainly needed so that the host will send the game description
//allowing people to join while the host is loading
NetSendMessages();
@ -267,7 +266,6 @@ void Game_Has_Loaded(void)
// FlipBuffers();
#if 0 /* TODO: disabled for port */
ColourFillBackBufferQuad
(
0,
@ -276,7 +274,7 @@ void Game_Has_Loaded(void)
ScreenDescriptorBlock.SDB_Width-1,
ScreenDescriptorBlock.SDB_Height-1
);
#endif
if (f)
{
LoadingBarFull_SrcRect.left=0;
@ -314,9 +312,8 @@ void Game_Has_Loaded(void)
/* If in a network game then we may as well check the network messages while waiting*/
if(AvP.Network != I_No_Network)
{
#if 0 /* TODO: disabled for port */
MinimalNetCollectMessages();
#endif
//send messages , mainly needed so that the host will send the game description
//allowing people to join while the host is loading
NetSendMessages();
@ -324,9 +321,8 @@ void Game_Has_Loaded(void)
}
}
#if 0 /* TODO: disabled for port */
while(!DebouncedGotAnyKey);
#endif
while (0);
FadingGameInAfterLoading=ONE_FIXED;

View file

@ -517,9 +517,6 @@ void CheckForWindowsMessages()
SDL_ShowCursor(0);
}
if (DebouncedKeyboardInput[KEY_ESCAPE])
AvP.MainLoopRunning = 0;
/* ctrl-z for iconify window? */
}
@ -568,7 +565,6 @@ int main(int argc, char *argv[])
InitialVideoMode();
/* Env_List can probably be removed */
// Env_List[0] = &(ELOLevelToLoad); /* overwrite the first entry of crappy env_list with LevelName */
Env_List[0]->main = LevelName;
InitialiseSystem();
@ -576,8 +572,6 @@ int main(int argc, char *argv[])
RequestedGammaSetting = 128;
/* InitOptionsMenu(); NOT YET */
// LoadDefaultPrimaryConfigs(); /* load the configs! yes! */
MarineInputPrimaryConfig = DefaultMarineInputPrimaryConfig;
PredatorInputPrimaryConfig = DefaultPredatorInputPrimaryConfig;
@ -606,12 +600,13 @@ int main(int argc, char *argv[])
AvP.LevelCompleted = 0;
LoadSounds("PLAYER");
AvP.CurrentEnv = AvP.StartingEnv = 0; /* are these even used? */
#if 0
{
// AvP.Network = I_Host; /* for exploring */
}
AvP.CurrentEnv = AvP.StartingEnv = 0; /* are these even used? */
#if ALIEN_DEMO
AvP.PlayerType = I_Alien;
SetLevelToLoad(AVP_ENVIRONMENT_INVASION_A);
@ -642,7 +637,9 @@ int main(int argc, char *argv[])
// SetLevelToLoad(AVP_ENVIRONMENT_E3DEMOSP); /* demo level */
#endif
// while(AvP_MainMenus()) {
#endif
while(AvP_MainMenus()) {
d3d_light_ctrl.ctrl = LCCM_NORMAL;
d3d_overlay_ctrl.ctrl = OCCM_NORMAL;
@ -720,10 +717,8 @@ int main(int argc, char *argv[])
ThisFramesRenderingHasBegun();
}
/* NOT YET
menusActive = AvP_InGameMenus();
if (AvP.RestartLevel) menusActive=0;
*/
if (AvP.LevelCompleted) {
SoundSys_FadeOutFast();
@ -758,18 +753,16 @@ int main(int argc, char *argv[])
if (AvP.RestartLevel) {
AvP.RestartLevel = 0;
AvP.LevelCompleted = 0;
/* NOT YET
FixCheatModesInUserProfile(UserProfilePtr);
*/
RestartLevel();
}
}
AvP.LevelCompleted = thisLevelHasBeenCompleted;
/* NOT YET
FixCheatModesInUserProfile(UserProfilePtr);
*/
/* NOT YET
CloseFMV();
@ -799,14 +792,12 @@ int main(int argc, char *argv[])
CDDA_Stop();
if (AvP.Network != I_No_Network) {
/* NOT YET
EndAVPNetGame();
*/
}
ClearMemoryPool();
// }
}
SoundSys_StopAll();
SoundSys_RemoveAll();

View file

@ -1782,6 +1782,571 @@ if (stringPtr == NULL) return;
}
}
int Hardware_RenderSmallMenuText(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format)
{
switch(format)
{
default:
fprintf(stderr, "Hardware_RenderSmallMenuText: UNKNOWN TEXT FORMAT\n");
exit(EXIT_FAILURE);
// GLOBALASSERT("UNKNOWN TEXT FORMAT"==0);
case AVPMENUFORMAT_LEFTJUSTIFIED:
{
// supplied x is correct
break;
}
case AVPMENUFORMAT_RIGHTJUSTIFIED:
{
int length = 0;
signed char *ptr = textPtr;
while(*ptr)
{
length+=AAFontWidths[*ptr++];
}
x -= length;
break;
}
case AVPMENUFORMAT_CENTREJUSTIFIED:
{
int length = 0;
signed char *ptr = textPtr;
while(*ptr)
{
length+=AAFontWidths[*ptr++];
}
x -= length/2;
break;
}
}
// LOCALASSERT(x>0);
{
unsigned int colour = alpha>>8;
if (colour>255) colour = 255;
colour = (colour<<24)+0xffffff;
D3D_RenderHUDString(textPtr,x,y,colour);
}
return x;
}
int Hardware_RenderSmallMenuText_Coloured(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format, int red, int green, int blue)
{
switch(format)
{
default:
// GLOBALASSERT("UNKNOWN TEXT FORMAT"==0);
fprintf(stderr, "Hardware_RenderSmallMenuText_Coloured: UNKNOWN TEXT FORMAT\n");
exit(EXIT_FAILURE);
case AVPMENUFORMAT_LEFTJUSTIFIED:
{
// supplied x is correct
break;
}
case AVPMENUFORMAT_RIGHTJUSTIFIED:
{
int length = 0;
signed char *ptr = textPtr;
while(*ptr)
{
length+=AAFontWidths[*ptr++];
}
x -= length;
break;
}
case AVPMENUFORMAT_CENTREJUSTIFIED:
{
int length = 0;
signed char *ptr = textPtr;
while(*ptr)
{
length+=AAFontWidths[*ptr++];
}
x -= length/2;
break;
}
}
// LOCALASSERT(x>0);
{
unsigned int colour = alpha>>8;
if (colour>255) colour = 255;
colour = (colour<<24);
colour += MUL_FIXED(red,255)<<16;
colour += MUL_FIXED(green,255)<<8;
colour += MUL_FIXED(blue,255);
D3D_RenderHUDString(textPtr,x,y,colour);
}
return x;
}
void Hardware_RenderKeyConfigRectangle(int alpha)
{
extern void D3D_DrawRectangle(int x, int y, int w, int h, int alpha);
D3D_DrawRectangle(10,ScreenDescriptorBlock.SDB_Height/2+25-115,ScreenDescriptorBlock.SDB_Width-20,250,alpha);
}
void Hardware_RenderHighlightRectangle(int x1,int y1,int x2,int y2,int r, int g, int b)
{
D3D_Rectangle(x1, y1, x2, y2, r, g, b, 255);
}
void D3D_DrawSliderBar(int x, int y, int alpha)
{
struct VertexTag quadVertices[4];
int sliderHeight = 11;
unsigned int colour = alpha>>8;
if (colour>255) colour = 255;
colour = (colour<<24)+0xffffff;
quadVertices[0].Y = y;
quadVertices[1].Y = y;
quadVertices[2].Y = y + sliderHeight;
quadVertices[3].Y = y + sliderHeight;
CheckFilteringModeIsCorrect(FILTERING_BILINEAR_OFF);
{
int topLeftU = 1;
int topLeftV = 68;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU + 2;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU + 2;
quadVertices[2].V = topLeftV + sliderHeight;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV + sliderHeight;
quadVertices[0].X = x;
quadVertices[3].X = x;
quadVertices[1].X = x + 2;
quadVertices[2].X = x + 2;
D3D_HUDQuad_Output
(
HUDFontsImageNumber,
quadVertices,
colour
);
}
{
int topLeftU = 7;
int topLeftV = 68;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU + 2;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU + 2;
quadVertices[2].V = topLeftV + sliderHeight;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV + sliderHeight;
quadVertices[0].X = x+213+2;
quadVertices[3].X = x+213+2;
quadVertices[1].X = x+2 +213+2;
quadVertices[2].X = x+2 +213+2;
D3D_HUDQuad_Output
(
HUDFontsImageNumber,
quadVertices,
colour
);
}
quadVertices[2].Y = y + 2;
quadVertices[3].Y = y + 2;
{
int topLeftU = 5;
int topLeftV = 77;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU;
quadVertices[2].V = topLeftV + 2;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV + 2;
quadVertices[0].X = x + 2;
quadVertices[3].X = x + 2;
quadVertices[1].X = x + 215;
quadVertices[2].X = x + 215;
D3D_HUDQuad_Output
(
HUDFontsImageNumber,
quadVertices,
colour
);
}
quadVertices[0].Y = y + 9;
quadVertices[1].Y = y + 9;
quadVertices[2].Y = y + 11;
quadVertices[3].Y = y + 11;
{
int topLeftU = 5;
int topLeftV = 77;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU;
quadVertices[2].V = topLeftV + 2;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV + 2;
quadVertices[0].X = x + 2;
quadVertices[3].X = x + 2;
quadVertices[1].X = x + 215;
quadVertices[2].X = x + 215;
D3D_HUDQuad_Output
(
HUDFontsImageNumber,
quadVertices,
colour
);
}
}
void D3D_DrawSlider(int x, int y, int alpha)
{
struct VertexTag quadVertices[4];
int sliderHeight = 5;
unsigned int colour = alpha>>8;
if (colour>255) colour = 255;
colour = (colour<<24)+0xffffff;
quadVertices[0].Y = y;
quadVertices[1].Y = y;
quadVertices[2].Y = y + sliderHeight;
quadVertices[3].Y = y + sliderHeight;
CheckFilteringModeIsCorrect(FILTERING_BILINEAR_OFF);
{
int topLeftU = 11;
int topLeftV = 74;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU + 9;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU + 9;
quadVertices[2].V = topLeftV + sliderHeight;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV + sliderHeight;
quadVertices[0].X = x;
quadVertices[3].X = x;
quadVertices[1].X = x + 9;
quadVertices[2].X = x + 9;
D3D_HUDQuad_Output
(
HUDFontsImageNumber,
quadVertices,
colour
);
}
}
void D3D_DrawRectangle(int x, int y, int w, int h, int alpha)
{
struct VertexTag quadVertices[4];
unsigned int colour = alpha>>8;
if (colour>255) colour = 255;
colour = (colour<<24)+0xffffff;
quadVertices[0].Y = y;
quadVertices[1].Y = y;
quadVertices[2].Y = y + 6;
quadVertices[3].Y = y + 6;
CheckFilteringModeIsCorrect(FILTERING_BILINEAR_OFF);
/* top left corner */
{
int topLeftU = 1;
int topLeftV = 238;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU + 6;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU + 6;
quadVertices[2].V = topLeftV + 6;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV + 6;
quadVertices[0].X = x;
quadVertices[3].X = x;
quadVertices[1].X = x + 6;
quadVertices[2].X = x + 6;
D3D_HUDQuad_Output
(
AAFontImageNumber,
quadVertices,
colour
);
}
/* top */
{
int topLeftU = 9;
int topLeftV = 238;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU;
quadVertices[2].V = topLeftV + 6;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV + 6;
quadVertices[0].X = x+6;
quadVertices[3].X = x+6;
quadVertices[1].X = x+6 + w-12;
quadVertices[2].X = x+6 + w-12;
D3D_HUDQuad_Output
(
AAFontImageNumber,
quadVertices,
colour
);
}
/* top right corner */
{
int topLeftU = 11;
int topLeftV = 238;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU + 6;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU + 6;
quadVertices[2].V = topLeftV + 6;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV + 6;
quadVertices[0].X = x + w - 6;
quadVertices[3].X = x + w - 6;
quadVertices[1].X = x + w;
quadVertices[2].X = x + w;
D3D_HUDQuad_Output
(
AAFontImageNumber,
quadVertices,
colour
);
}
quadVertices[0].Y = y + 6;
quadVertices[1].Y = y + 6;
quadVertices[2].Y = y + h - 6;
quadVertices[3].Y = y + h - 6;
/* right */
{
int topLeftU = 1;
int topLeftV = 246;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU + 6;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU + 6;
quadVertices[2].V = topLeftV;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV;
D3D_HUDQuad_Output
(
AAFontImageNumber,
quadVertices,
colour
);
}
/* left */
{
int topLeftU = 1;
int topLeftV = 246;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU + 6;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU + 6;
quadVertices[2].V = topLeftV;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV;
quadVertices[0].X = x;
quadVertices[3].X = x;
quadVertices[1].X = x + 6;
quadVertices[2].X = x + 6;
D3D_HUDQuad_Output
(
AAFontImageNumber,
quadVertices,
colour
);
}
quadVertices[0].Y = y + h - 6;
quadVertices[1].Y = y + h - 6;
quadVertices[2].Y = y + h;
quadVertices[3].Y = y + h;
/* bottom left corner */
{
int topLeftU = 1;
int topLeftV = 248;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU + 6;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU + 6;
quadVertices[2].V = topLeftV + 6;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV + 6;
quadVertices[0].X = x;
quadVertices[3].X = x;
quadVertices[1].X = x + 6;
quadVertices[2].X = x + 6;
D3D_HUDQuad_Output
(
AAFontImageNumber,
quadVertices,
colour
);
}
/* bottom */
{
int topLeftU = 9;
int topLeftV = 238;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU;
quadVertices[2].V = topLeftV + 6;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV + 6;
quadVertices[0].X = x+6;
quadVertices[3].X = x+6;
quadVertices[1].X = x+6 + w-12;
quadVertices[2].X = x+6 + w-12;
D3D_HUDQuad_Output
(
AAFontImageNumber,
quadVertices,
colour
);
}
/* bottom right corner */
{
int topLeftU = 11;
int topLeftV = 248;
quadVertices[0].U = topLeftU;
quadVertices[0].V = topLeftV;
quadVertices[1].U = topLeftU + 6;
quadVertices[1].V = topLeftV;
quadVertices[2].U = topLeftU + 6;
quadVertices[2].V = topLeftV + 6;
quadVertices[3].U = topLeftU;
quadVertices[3].V = topLeftV + 6;
quadVertices[0].X = x + w - 6;
quadVertices[3].X = x + w - 6;
quadVertices[1].X = x + w;
quadVertices[2].X = x + w;
D3D_HUDQuad_Output
(
AAFontImageNumber,
quadVertices,
colour
);
}
}
void D3D_DrawColourBar(int yTop, int yBottom, int rScale, int gScale, int bScale)
{
extern unsigned char GammaValues[256];
GLfloat x[4], y[4];
int i;
CheckTranslucencyModeIsCorrect(TRANSLUCENCY_OFF);
CheckBoundTextureIsCorrect(NULL);
SelectPolygonBeginType(3); /* triangles */
for (i = 0; i < 255; ) {
unsigned int c;
c = GammaValues[i];
glColor4ub(MUL_FIXED(c,rScale), MUL_FIXED(c,gScale), MUL_FIXED(c,bScale), 0);
x[0] = (Global_VDB_Ptr->VDB_ClipRight*i)/255;
x[0] = (x[0] - ScreenDescriptorBlock.SDB_CentreX)/ScreenDescriptorBlock.SDB_CentreX;
y[0] = yTop;
y[0] = -(y[0] - ScreenDescriptorBlock.SDB_CentreY)/ScreenDescriptorBlock.SDB_CentreY;
x[1] = (Global_VDB_Ptr->VDB_ClipRight*i)/255;
x[1] = (x[1] - ScreenDescriptorBlock.SDB_CentreX)/ScreenDescriptorBlock.SDB_CentreX;
y[1] = yBottom;
y[1] = -(y[1] - ScreenDescriptorBlock.SDB_CentreY)/ScreenDescriptorBlock.SDB_CentreY;
i++;
c = GammaValues[i];
glColor4ub(MUL_FIXED(c,rScale), MUL_FIXED(c,gScale), MUL_FIXED(c,bScale), 0);
x[2] = (Global_VDB_Ptr->VDB_ClipRight*i)/255;
x[2] = (x[2] - ScreenDescriptorBlock.SDB_CentreX)/ScreenDescriptorBlock.SDB_CentreX;
y[2] = yBottom;
y[2] = -(y[2] - ScreenDescriptorBlock.SDB_CentreY)/ScreenDescriptorBlock.SDB_CentreY;
x[3] = (Global_VDB_Ptr->VDB_ClipRight*i)/255;
x[3] = (x[3] - ScreenDescriptorBlock.SDB_CentreX)/ScreenDescriptorBlock.SDB_CentreX;
y[3] = yTop;
y[3] = -(y[3] - ScreenDescriptorBlock.SDB_CentreY)/ScreenDescriptorBlock.SDB_CentreY;
glVertex3f(x[0], y[0], -1.0f);
glVertex3f(x[1], y[1], -1.0f);
glVertex3f(x[3], y[3], -1.0f);
glVertex3f(x[1], y[1], -1.0f);
glVertex3f(x[2], y[2], -1.0f);
glVertex3f(x[3], y[3], -1.0f);
}
glEnd();
}
void ColourFillBackBuffer(int FillColour)
{
float r, g, b, a;
@ -1796,6 +2361,18 @@ void ColourFillBackBuffer(int FillColour)
glClear(GL_COLOR_BUFFER_BIT);
}
void ColourFillBackBufferQuad(int FillColour, int LeftX, int TopY, int RightX, int BotY)
{
int r, g, b, a;
b = ((FillColour >> 0) & 0xFF);
g = ((FillColour >> 8) & 0xFF);
r = ((FillColour >> 16) & 0xFF);
a = ((FillColour >> 24) & 0xFF);
D3D_Rectangle(LeftX, TopY, RightX, BotY, r, g, b, a);
}
void D3D_DrawBackdrop()
{
extern int NumActiveBlocks;

View file

@ -20,33 +20,91 @@
/* winmain.c */
BOOL KeepMainRifFile = FALSE;
int HWAccel = 1;
int VideoModeNotAvailable=0;
/* avp_mp_config.cpp */
char* GetCustomMultiplayerLevelName(int index, int gameType)
/* videomodes.cpp */
void LoadDeviceAndVideoModePreferences()
{
fprintf(stderr, "GetCustomMultiplayerLevelName(%d, %d)\n", index, gameType);
fprintf(stderr, "LoadDeviceAndVideoModePreferences()\n");
}
void SaveDeviceAndVideoModePreferences()
{
fprintf(stderr, "SaveDeviceAndVideoModePreferences()\n");
}
void PreviousVideoMode2()
{
fprintf(stderr, "PreviousVideoMode2()\n");
}
void NextVideoMode2()
{
fprintf(stderr, "NextVideoMode2()\n");
}
char *GetVideoModeDescription2()
{
fprintf(stderr, "GetVideoModeDescription2()\n");
return NULL;
return "";
}
void BuildMultiplayerLevelNameArray()
char *GetVideoModeDescription3()
{
fprintf(stderr, "BuildMultiplayerLevelNameArray()\n");
}
BOOL BuildLoadIPAddressMenu()
{
fprintf(stderr, "BuildLoadIPAddressMenu()\n");
fprintf(stderr, "GetVideoModeDescription3()\n");
return FALSE;
return "";
}
/* avp_intro.cpp */
void DrawMainMenusBackdrop()
/* directplay.c */
int DirectPlay_ConnectingToLobbiedGame(char* playerName)
{
fprintf(stderr, "DrawMainMenusBackdrop()\n");
fprintf(stderr, "DirectPlay_ConnectingToLobbiedGame(%s)\n", playerName);
return 0;
}
int DirectPlay_ConnectingToSession()
{
fprintf(stderr, "DirectPlay_ConnectingToSession()\n");
return 0;
}
BOOL DirectPlay_UpdateSessionList(int *SelectedItem)
{
fprintf(stderr, "DirectPlay_UpdateSessionList(%p)\n", SelectedItem);
return 0;
}
int DirectPlay_JoinGame()
{
fprintf(stderr, "DirectPlay_JoinGame()\n");
return 0;
}
void DirectPlay_EnumConnections()
{
fprintf(stderr, "DirectPlay_EnumConnections()\n");
}
int DirectPlay_HostGame(char *playerName, char *sessionName,int species,int gamestyle,int level)
{
fprintf(stderr, "DirectPlay_HostGame(%s, %s, %d, %d, %d)\n", playerName, sessionName, species, gamestyle, level);
return 0;
}
int DirectPlay_ConnectToSession(int sessionNumber, char *playerName)
{
fprintf(stderr, "DirectPlay_ConnectToSession(%d, %s)\n", sessionNumber, playerName);
return 0;
}
@ -58,6 +116,29 @@ void CheckCDVolume()
fprintf(stderr, "CheckCDVolume()\n");
}
/* bink.c */
void PlayBinkedFMV(char *filenamePtr)
{
fprintf(stderr, "PlayBinkedFMV(%s)\n", filenamePtr);
}
void StartMenuBackgroundBink()
{
fprintf(stderr, "StartMenuBackgroundBink()\n");
}
int PlayMenuBackgroundBink()
{
fprintf(stderr, "PlayMenuBackgroundBink()\n");
return 0;
}
void EndMenuBackgroundBink()
{
fprintf(stderr, "EndMenuBackgroundBink()\n");
}
/* smacker.c */
int FmvColourRed;
@ -65,6 +146,7 @@ int FmvColourGreen;
int FmvColourBlue;
int IntroOutroMoviesAreActive = 1;
int MoviesAreActive;
int SmackerSoundVolume;
void GetFMVInformation(int *messageNumberPtr, int *frameNumberPtr)
{
@ -91,6 +173,11 @@ void UpdateAllFMVTextures()
fprintf(stderr, "UpdateAllFMVTextures()\n");
}
void EndMenuMusic()
{
fprintf(stderr, "EndMenuMusic()\n");
}
/* alt_tab.cpp */
void ATIncludeSurface(void * pSurface, void * hBackup)
@ -113,6 +200,21 @@ void ATRemoveTexture(void * pTexture)
/* char AAFontWidths[256]; */
AVPMENUGFX AvPMenuGfxStorage[MAX_NO_OF_AVPMENUGFXS]; /* TODO: this is initialized in avp_menugfx.cpp */
void InitialiseMenuGfx()
{
fprintf(stderr, "InitialiseMenuGfx()\n");
}
void LoadAllAvPMenuGfx()
{
fprintf(stderr, "LoadAllAvPMenuGfx()\n");
}
void ReleaseAllAvPMenuGfx()
{
fprintf(stderr, "ReleaseAllAvPMenuGfx()\n");
}
void FadedScreen(int alpha)
{
fprintf(stderr, "FadedScreen(%d)\n", alpha);
@ -123,6 +225,16 @@ void ClearScreenToBlack()
fprintf(stderr, "ClearScreenToBlack()\n");
}
void LoadAllSplashScreenGfx()
{
fprintf(stderr, "LoadAllSplashScreenGfx()\n");
}
void LoadAvPMenuGfx(enum AVPMENUGFX_ID menuGfxID)
{
fprintf(stderr, "LoadAvPMenuGfx(%d)\n", menuGfxID);
}
void DrawAvPMenuGfx(enum AVPMENUGFX_ID menuGfxID, int topleftX, int topleftY, int alpha,enum AVPMENUFORMAT_ID format)
{
fprintf(stderr, "DrawAvPMenuGfx(%d, %d, %d, %d, %d)\n", menuGfxID, topleftX, topleftY, alpha, format);
@ -138,6 +250,11 @@ void DrawAvPMenuGfx_Faded(enum AVPMENUGFX_ID menuGfxID, int topleftX, int toplef
fprintf(stderr, "DrawAvPMenuGfx_Faded(%d, %d, %d, %d, %d)\n", menuGfxID, topleftX, topleftY, alpha, format);
}
void DrawAvPMenuGfx_Clipped(enum AVPMENUGFX_ID menuGfxID, int topleftX, int topleftY, int alpha,enum AVPMENUFORMAT_ID format, int topY, int bottomY)
{
fprintf(stderr, "DrawAvPMenuGfx_Clipped(%d, %d, %d, %d, %d, %d, %d)\n", menuGfxID, topleftX, topleftY, alpha, format, topY, bottomY);
}
int RenderMenuText(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format)
{
fprintf(stderr, "RenderMenuText(%s, %d, %d, %d, %d)\n", textPtr, x, y, alpha, format);
@ -145,62 +262,71 @@ int RenderMenuText(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID
return 0;
}
void LoadAllSplashScreenGfx()
int RenderMenuText_Clipped(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format, int topY, int bottomY)
{
fprintf(stderr, "LoadAllSplashScreenGfx()\n");
fprintf(stderr, "RenderMenuText_Clipped(%s, %d, %d, %d, %d, %d, %d)\n", textPtr, x, y, alpha, format, topY, bottomY);
return 0;
}
void LoadAvPMenuGfx(enum AVPMENUGFX_ID menuGfxID)
int RenderSmallMenuText(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format)
{
fprintf(stderr, "LoadAvPMenuGfx(%d)\n", menuGfxID);
/*
return Hardware_RenderSmallMenuText(textPtr, x, y, alpha, format);
*/
fprintf(stderr, "RenderSmallMenuText(%s, %d, %d, %d, %d)\n", textPtr, x, y, alpha, format);
return 0;
}
/* avp_menus.cpp */
AVP_USER_PROFILE *UserProfilePtr;
CONTROL_METHODS PlayerControlMethods;
int NumberOfSessionsFound;
JOYSTICK_CONTROL_METHODS PlayerJoystickControlMethods;
SESSION_DESC SessionData[MAX_NO_OF_SESSIONS];
SAVE_SLOT_HEADER SaveGameSlot[NUMBER_OF_SAVE_SLOTS];
void GetFilenameForSaveSlot(int i, unsigned char *filenamePtr)
int RenderSmallMenuText_Coloured(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format, int red, int green, int blue)
{
fprintf(stderr, "GetFilenameForSaveSlot(%d, %p)\n", i, filenamePtr);
}
void RenderBriefingText(int centreY, int brightness)
{
fprintf(stderr, "RenderBriefingText(%d, %d)\n", centreY, brightness);
}
void LoadLevelHeader(SAVE_BLOCK_HEADER* header)
{
fprintf(stderr, "LoadLevelHeader(%p)\n", header);
}
void AvP_TriggerInGameMenus()
{
fprintf(stderr, "AvP_TriggerInGameMenus()\n");
}
void ScanSaveSlots()
{
fprintf(stderr, "ScanSaveSlots()\n");
}
void SaveLevelHeader()
{
fprintf(stderr, "SaveLevelHeader()\n");
}
int InGameMenusAreRunning()
{
fprintf(stderr, "InGameMenusAreRunning()\n");
/*
return Hardware_RenderSmallMenuText_Coloured(textPtr, x, y, alpha, format, red, green, blue);
*/
fprintf(stderr, "RenderSmallMenuText_Coloured(%s, %d, %d, %d, %d, %d, %d, %d)\n", textPtr, x, y, alpha, format, red, green, blue);
return 0;
}
void RenderSmallFontString_Wrapped(char *textPtr,RECT* area,int alpha,int* output_x,int* output_y)
{
fprintf(stderr, "RenderSmallFontString_Wrapped(%s, %p, %d, %p, %p)\n", textPtr, area, alpha, output_x, output_y);
}
void RenderKeyConfigRectangle(int alpha)
{
/*
void Hardware_RenderKeyConfigRectangle(int alpha);
Hardware_RenderKeyConfigRectangle(alpha);
*/
fprintf(stderr, "RenderKeyConfigRectangle(%d)\n", alpha);
}
void RenderHighlightRectangle(int x1,int y1,int x2,int y2, int r, int g, int b)
{
/*
void Hardware_RenderHighlightRectangle(int x1,int y1,int x2,int y2,int r, int g, int b);
Hardware_RenderHighlightRectangle(x1, y1, x2, y2, r, g, b);
*/
fprintf(stderr, "RenderHighlightRectangle(%d, %d, %d, %d, %d, %d, %d)\n", x1, y1, x2, y2, r, g, b);
}
int LengthOfMenuText(char *textPtr)
{
fprintf(stderr, "LengthOfMenuText(%s)\n", textPtr);
return 0;
}
int HeightOfMenuGfx(enum AVPMENUGFX_ID menuGfxID)
{
fprintf(stderr, "HeightOfMenuGfx(%d)\n", menuGfxID);
return 0;
}
/* avpreg.cpp */
char *AvpCDPath = 0;
@ -217,16 +343,6 @@ extern char * SecondSoundDir;
}
/* avp_userprofile.c */
int SmackerSoundVolume;
int NumberOfUserProfiles()
{
fprintf(stderr, "NumberOfUserProfiles()\n");
return 0;
}
/* d3_func.cpp */
int GetTextureHandle(IMAGEHEADER *imageHeaderPtr)
{
@ -299,6 +415,12 @@ BOOL EndD3DScene()
return FALSE;
}
/* ddplat.cpp */
void MinimizeAllDDGraphics()
{
fprintf(stderr, "MinimizeAllDDGraphics()\n");
}
/* dd_func.cpp */
long BackBufferPitch;
@ -348,6 +470,18 @@ BOOL ChangeDirectDrawObject()
return FALSE;
}
int SelectDirectDrawObject(void *pGUID)
{
fprintf(stderr, "SelectDirectDrawObject(%p)\n", pGUID);
return 0;
}
void GenerateDirectDrawSurface()
{
fprintf(stderr, "GenerateDirectDrawSurface()\n");
}
/* dx_proj.cpp */
int use_mmx_math = 0;