Now in the Data loading phase.

Converted many '\\' to '/'.   Partially implemented win32 file routines.
Got texture code to work OK for now (still needs to be reimplemented).
Partially implemented the main loop.
This commit is contained in:
Steven Fuller 2001-08-05 05:51:56 +00:00 committed by Patryk Obara
parent f2c6ac7362
commit a5fdb9f7c8
16 changed files with 442 additions and 215 deletions

View file

@ -10,14 +10,14 @@ LDLIBS += -L/usr/X11R6/lib -lX11 -lXext `sdl-config --libs`
AFLAGS = -g -Iinclude/ -w+macro-params -w+orphan-labels -w+number-overflow
ROOT = main.c stubs.c stubs2.cpp afont.c frustum.c kshape.c map.c maths.c md5.c mem3dc.c mem3dcpp.cpp module.c morph.c mslhand.c object.c shpanim.c sphere.c tables.c vdb.c version.c
ROOT = main.c stubs.c stubs2.cpp winapi.c afont.c frustum.c kshape.c map.c maths.c md5.c mem3dc.c mem3dcpp.cpp module.c morph.c mslhand.c object.c shpanim.c sphere.c tables.c vdb.c version.c
AVP = ai_sight.c avpview.c bh_agun.c bh_ais.c bh_alien.c bh_binsw.c bh_cable.c bh_corpse.c bh_deathvol.c bh_debri.c bh_dummy.c bh_fan.c bh_far.c bh_fhug.c bh_gener.c bh_ldoor.c bh_lift.c bh_light.c bh_lnksw.c bh_ltfx.c bh_marin.c bh_mission.c bh_near.c bh_pargen.c bh_plachier.c bh_plift.c bh_pred.c bh_queen.c bh_rubberduck.c bh_selfdest.c bh_snds.c bh_spcl.c bh_swdor.c bh_track.c bh_types.c bh_videoscreen.c bh_waypt.c bh_weap.c bh_xeno.c bonusabilities.c cconvars.cpp cdtrackselection.cpp cheatmodes.c comp_map.c comp_shp.c consolelog.cpp davehook.cpp deaths.c decal.c detaillevels.c dynamics.c dynblock.c equipmnt.c equiputl.cpp extents.c game.c game_statistics.c gamecmds.cpp gameflow.c gamevars.cpp hmodel.c hud.c inventry.c language.c lighting.c load_shp.c los.c maps.c mempool.c messagehistory.c missions.cpp movement.c paintball.c particle.c pfarlocs.c pheromon.c player.c pmove.c psnd.c psndproj.c pvisible.c savegame.c scream.cpp secstats.c sfx.c stratdef.c targeting.c track.c triggers.c weapons.c
SHAPES = cube.c
SUPPORT = consbind.cpp consbtch.cpp coordstr.cpp daemon.cpp r2base.cpp r2pos666.cpp reflist.cpp refobj.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 gflwplat.c hierplace.cpp iofocus.cpp jsndsup.cpp kzsort.c langplat.c modcmds.cpp npcsetup.cpp objsetup.cpp pathchnk.cpp platsup.c pldghost.c projload.cpp scrshot.cpp strachnk.cpp system.c usr_io.c vision.c
FRONTEND = avp_envinfo.c avp_intro.cpp avp_menudata.c
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 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
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
# awbmpld.cpp awiffld.cpp awpnmld.cpp awtexld.cpp
# the following should really be autogenerated...

3
TODO Normal file
View file

@ -0,0 +1,3 @@
* ScreenDescriptorBlock: init this somewhere before StartGame, seems to be
initialized in the menu code

View file

@ -2,3 +2,6 @@ win95/awtexld.hpp line 79:
/* TODO */
/*|pixelFormat.ddpf.dwRGBAlphaBitMask*/
========
Changed filenames:
avp/win95/system.c (avp_load_rif calls)

View file

@ -39,4 +39,4 @@ extern void UnloadTextFile(char *filename, char *bufferPtr);
**********************************************************KJL*/
#endif
#endif

View file

@ -56,12 +56,13 @@ static CharacterSoundEffects QueenSounds={0,0,0,SID_NOSOUND};
//static SOUNDINDEX global_last_sound;
/* TODO: dir separator */
#if ALIEN_DEMO
#define ScreamFilePath "alienfastfile\\"
#define ScreamFilePath "alienfastfile/"
#elif LOAD_SCREAMS_FROM_FASTFILES
#define ScreamFilePath "fastfile\\"
#define ScreamFilePath "fastfile/"
#else
#define ScreamFilePath "sound\\"
#define ScreamFilePath "sound/"
#endif
#if 0
@ -99,7 +100,8 @@ void LoadScreamSounds()
voice_types=(ScreamVoiceType*) PoolAllocateMem(num_voice_types * sizeof(ScreamVoiceType));
char wavpath[200]="npc\\marinevoice\\";
/* TODO: dir separator */
char wavpath[200]="npc/marinevoice/";
char* wavname=&wavpath[strlen(wavpath)];
for(int i=0;i<num_voice_types;i++)
{
@ -345,22 +347,23 @@ void UnloadScreamSounds()
}
/* TODO: dir separator */
void LoadMarineScreamSounds()
{
MarineSounds.LoadSounds("marsound.dat","npc\\marinevoice\\");
MarineSounds.LoadSounds("marsound.dat","npc/marinevoice/");
}
void LoadAlienScreamSounds()
{
AlienSounds.LoadSounds("aliensound.dat","npc\\alienvoice\\");
AlienSounds.LoadSounds("aliensound.dat","npc/alienvoice/");
}
void LoadPredatorScreamSounds()
{
PredatorSounds.LoadSounds("predsound.dat","npc\\predatorvoice\\");
PredatorSounds.LoadSounds("predsound.dat","npc/predatorvoice/");
}
void LoadQueenScreamSounds()
{
QueenSounds.LoadSounds("queensound.dat","npc\\queenvoice\\");
QueenSounds.LoadSounds("queensound.dat","npc/queenvoice/");
}
@ -384,4 +387,4 @@ void PlayQueenSound(int VoiceType,int SoundCategory,int PitchShift,int* External
};
};

View file

@ -179,9 +179,11 @@ FFHeaderI::FFHeaderI(char const *_filename,BOOL _should_be_kept)
{
if (_filename)
{
filename = new char [strlen(_filename)+1];
filename = new char [strlen(_filename) + 1];
strcpy(filename,_filename);
FixFilename(filename);
Read();
}
}
@ -282,7 +284,7 @@ FFError FFHeaderI::Read(char const *_filename)
if (INVALID_HANDLE_VALUE==h)
{
ReportError(_filename);
ReportError(filename);
return FF_COULDNOTOPENFILE;
}

View file

@ -13,10 +13,12 @@
#include "avp_menus.h"
/* TODO: dir separator */
#if ALIEN_DEMO
#define DIRECTORY_FOR_RIFS "alienavp_huds\\"
#define DIRECTORY_FOR_RIFS "alienavp_huds/"
#else
#define DIRECTORY_FOR_RIFS "avp_huds\\"
#define DIRECTORY_FOR_RIFS "avp_huds/"
#endif
#define FIRST_FREE_IMAGE_GROUP 3 // 0 for char,1 for weapon rif ,2 for env

View file

@ -368,7 +368,9 @@ void LoadedPlacedHierarchy::load_rif()
{
if(placed_rif!=INVALID_RIFFHANDLE) return;
char file_path[100];
sprintf(file_path,"avp_huds\\%s.rif",file_name);
/* TODO: dir seperator */
sprintf(file_path,"avp_huds/%s.rif",file_name);
placed_rif=avp_load_rif_non_env(file_path);
if(placed_rif!=INVALID_RIFFHANDLE)
@ -504,7 +506,8 @@ Global_Hierarchy_Store::Global_Hierarchy_Store (RIFFHANDLE h)
sound_array[index].volume=isc->max_volume;
if(dir_chunk)
{
sprintf(wavname,"%s\\%s",dir_chunk->directory,isc->wav_name);
/* TODO: dir separator */
sprintf(wavname,"%s/%s",dir_chunk->directory,isc->wav_name);
sound_array[index].sound_loaded=GetSound(wavname);
}
else
@ -3082,11 +3085,8 @@ void DeallocateModules()
//and get rid of the strategy lists
deallocate_behaviour_list();
}
void avp_undo_rif_load(RIFFHANDLE h)
{
DeleteHierarchyLibraryEntry(h);
@ -3096,34 +3096,40 @@ void avp_undo_rif_load(RIFFHANDLE h)
RIFFHANDLE avp_load_rif (const char * fname)
{
//see if there is a local copy of the rif file
FILE* rifFile=fopen(fname,"rb");
if(!rifFile && AvpCDPath)
FILE* rifFile = fopen(fname,"rb");
/* TODO: Let's find a better method */
if (!rifFile && AvpCDPath)
{
//try and load rif file from cd instead
char RifName[200];
sprintf(RifName,"%s%s",AvpCDPath,fname);
sprintf(RifName, "%s%s", AvpCDPath, fname);
return load_rif(RifName);
}
fclose(rifFile);
if (rifFile)
fclose(rifFile);
return load_rif(fname);
}
RIFFHANDLE avp_load_rif_non_env (const char * fname)
{
//see if there is a local copy of the rif file
FILE* rifFile=fopen(fname,"rb");
if(!rifFile && AvpCDPath)
FILE* rifFile = fopen(fname, "rb");
/* TODO: Let's find a better method */
if (!rifFile && AvpCDPath)
{
//try and load rif file from cd instead
char RifName[200];
sprintf(RifName,"%s%s",AvpCDPath,fname);
sprintf(RifName, "%s%s", AvpCDPath, fname);
return load_rif_non_env(RifName);
}
fclose(rifFile);
if (rifFile)
fclose(rifFile);
return load_rif_non_env(fname);
}
@ -3136,7 +3142,8 @@ void LoadModuleData()
{
GLOBALASSERT(env_rif);
HANDLE file = CreateFile ("avp_rifs\\module.bbb", GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
/* TODO: dir separator */
HANDLE file = CreateFile ("avp_rifs/module.bbb", GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_FLAG_RANDOM_ACCESS, 0);
unsigned long byteswritten;
WriteFile(file,&Global_VDB_Ptr->VDB_World,sizeof(VECTORCH),&byteswritten,0);
@ -3144,7 +3151,8 @@ void LoadModuleData()
CloseHandle(file);
file = CreateFile ("avp_rifs\\module.aaa", GENERIC_READ, 0, 0, OPEN_EXISTING,
/* TODO: dir separator */
file = CreateFile ("avp_rifs/module.aaa", GENERIC_READ, 0, 0, OPEN_EXISTING,
FILE_FLAG_RANDOM_ACCESS, 0);
if(file==INVALID_HANDLE_VALUE) return;
@ -3168,7 +3176,7 @@ void LoadModuleData()
char* name1=&name[0];
while(name[i])
{
if(name[i]=='\\' || name[i]==':')
if(name[i]=='\\' || name[i]==':' /* || name[i]=='/' */)
{
name1=&name[i+1];
}

View file

@ -399,29 +399,29 @@ void InitCharacter()
{
case I_Marine:
{
marine_weapon_rif = avp_load_rif("avp_huds\\marwep.rif");
marine_weapon_rif = avp_load_rif("avp_huds/marwep.rif");
Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.25);
player_rif = avp_load_rif("avp_huds\\marine.rif");
player_rif = avp_load_rif("avp_huds/marine.rif");
break;
}
case I_Predator:
{
predator_weapon_rif = avp_load_rif("avp_huds\\pred_hud.rif");
predator_weapon_rif = avp_load_rif("avp_huds/pred_hud.rif");
Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.25);
player_rif = avp_load_rif("avp_huds\\predator.rif");
player_rif = avp_load_rif("avp_huds/predator.rif");
break;
}
case I_Alien:
{
#if ALIEN_DEMO
alien_weapon_rif = avp_load_rif("alienavp_huds\\alien_hud.rif");
alien_weapon_rif = avp_load_rif("alienavp_huds/alien_hud.rif");
Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.25);
player_rif = avp_load_rif("alienavp_huds\\alien.rif");
player_rif = avp_load_rif("alienavp_huds/alien.rif");
#else
alien_weapon_rif = avp_load_rif("avp_huds\\alien_hud.rif");
alien_weapon_rif = avp_load_rif("avp_huds/alien_hud.rif");
Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.25);
player_rif = avp_load_rif("avp_huds\\alien.rif");
player_rif = avp_load_rif("avp_huds/alien.rif");
#endif
break;
}
@ -440,12 +440,12 @@ void InitCharacter()
// set up a multiplayer game - here becuse we might end
// up with a cooperative game
//load all weapon rifs
marine_weapon_rif = avp_load_rif("avp_huds\\marwep.rif");
predator_weapon_rif = avp_load_rif("avp_huds\\pred_hud.rif");
alien_weapon_rif = avp_load_rif("avp_huds\\alien_hud.rif");
marine_weapon_rif = avp_load_rif("avp_huds/marwep.rif");
predator_weapon_rif = avp_load_rif("avp_huds/pred_hud.rif");
alien_weapon_rif = avp_load_rif("avp_huds/alien_hud.rif");
Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.25);
player_rif = avp_load_rif("avp_huds\\multip.rif");
player_rif = avp_load_rif("avp_huds/multip.rif");
}
}
Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.5);
@ -821,6 +821,8 @@ void LoadRifFile()
catpathandextension(&file_and_path[0], Env_List[AvP.CurrentEnv]->main); /* root of the file name,smae as dir*/
catpathandextension(&file_and_path[0], (char *)&FileNameExtension[0]); /* extension*/
FixFilename(file_and_path);
env_rif = avp_load_rif((const char*)&file_and_path[0]);
Set_Progress_Bar_Position(PBAR_LEVEL_START+PBAR_LEVEL_INTERVAL*.4);

View file

@ -45,6 +45,8 @@ size_t _mbclen(const unsigned char *s);
#define MAX_PATH PATH_MAX
void FixFilename(char *str);
/* windows junk */
typedef int GUID;
typedef int DPID;
@ -90,20 +92,21 @@ typedef struct SYSTEMTIME
} SYSTEMTIME;
#define INVALID_HANDLE_VALUE -1
#define GENERIC_WRITE 1
#define CREATE_ALWAYS 2
#define FILE_FLAG_RANDOM_ACCESS 3
#define GENERIC_READ 4
#define OPEN_EXISTING 5
#define FILE_ATTRIBUTE_READONLY 6
#define FILE_CURRENT 7
#define FILE_BEGIN 8
#define FILE_END 9
#define FILE_SHARE_READ 10
#define FILE_ATTRIBUTE_DIRECTORY 11
#define FILE_SHARE_WRITE 12
#define OPEN_ALWAYS 13
#define FILE_ATTRIBUTE_NORMAL 14
#define GENERIC_WRITE 0x0001
#define CREATE_ALWAYS 0x0002
#define FILE_FLAG_RANDOM_ACCESS 0x0004
#define GENERIC_READ 0x0008
#define OPEN_EXISTING 0x0010
#define FILE_ATTRIBUTE_READONLY 0x0020
#define FILE_CURRENT 0x0040
#define FILE_BEGIN 0x0080
#define FILE_END 0x0100
#define FILE_SHARE_READ 0x0200
#define FILE_ATTRIBUTE_DIRECTORY 0x0400
#define FILE_SHARE_WRITE 0x0800
#define OPEN_ALWAYS 0x1000
#define FILE_ATTRIBUTE_NORMAL 0x2000
HANDLE CreateFile(const char *file, int write, int x, int y, int flags, int flags2, int z);
HANDLE CreateFileA(const char *file, int write, int x, int y, int flags, int flags2, int z);

View file

@ -5,8 +5,20 @@
#include "fixer.h"
#include "3dc.h"
#include "platform.h"
#include "gamedef.h"
#include "gameplat.h"
#include "ffstdio.h"
#include "vision.h"
#include "comp_shp.h"
#include "avp_envinfo.h"
#include "cdtrackselection.h"
char LevelName[] = {"predbit6\0QuiteALongNameActually"};
static ELO ELOLevelToLoad = {&LevelName};
extern int ScanDrawMode; /* to fix image loading */
PROCESSORTYPES ReadProcessorType()
{
return PType_PentiumMMX;
@ -14,6 +26,8 @@ PROCESSORTYPES ReadProcessorType()
int InitialiseWindowsSystem()
{
ScanDrawMode = ScanDrawD3DHardwareRGB;
return 0;
}
@ -24,7 +38,98 @@ int ExitWindowsSystem()
int main(int argc, char *argv[])
{
int level_to_load = I_Num_Environments;
LoadCDTrackList();
SetFastRandom();
GetPathFromRegistry();
#if MARINE_DEMO
ffInit("fastfile/mffinfo.txt","fastfile/");
#elif ALIEN_DEMO
ffInit("alienfastfile/ffinfo.txt","alienfastfile/");
#else
ffInit("fastfile/ffinfo.txt","fastfile/");
#endif
InitGame();
InitialVideoMode();
Env_List[0] = &(ELOLevelToLoad);
level_to_load = 0;
InitialiseSystem();
InitialiseRenderer();
/* InitOptionsMenu(); NOT YET */
LoadKeyConfiguration();
SoundSys_Start();
CDDA_Start();
InitTextStrings();
BuildMultiplayerLevelNameArray();
ChangeDirectDrawObject();
AvP.LevelCompleted = 0;
LoadSounds("PLAYER");
AvP.CurrentEnv = AvP.StartingEnv = 0; /* ??? */
SetLevelToLoad(AVP_ENVIRONMENT_INVASION); /* because the menus aren't implemented */
// while(AvP_MainMenus()) {
d3d_light_ctrl.ctrl = LCCM_NORMAL;
d3d_overlay_ctrl.ctrl = OCCM_NORMAL;
// GetCorrectDirectDrawObject();
start_of_loaded_shapes = load_precompiled_shapes();
InitCharacter();
LoadRifFile(); /* sets up a map */
AssignAllSBNames();
StartGame();
ffcloseall();
AvP.MainLoopRunning = 1;
/* ScanImagesForFMVs(); NOT YET */
ResetFrameCounter();
/* Game_Has_Loaded(); NOT YET */
ResetFrameCounter();
/* IngameKeyboardInput_ClearBuffer(); NOT YET */
while(AvP.MainLoopRunning) {
CheckForWindowsMessages();
switch(AvP.GameMode) {
case I_GM_Playing:
break;
case I_GM_Menus:
AvP.GameMode = I_GM_Playing;
break;
case I_GM_Paused:
break;
default:
fprintf(stderr, "AvP.MainLoopRunning: gamemode = %d\n", AvP.GameMode);
exit(EXIT_FAILURE);
}
break; /* TODO -- remove when loop works */
}
// }
return 0;
}

View file

@ -19,8 +19,7 @@
/* winmain.c */
BOOL KeepMainRifFile = FALSE;
char LevelName[] = {"predbit6\0QuiteALongNameActually"};
int HWAccel = 0;
int HWAccel = 1;
/* win_func.cpp */
@ -67,6 +66,11 @@ char* GetCustomMultiplayerLevelName(int index, int gameType)
return NULL;
}
void BuildMultiplayerLevelNameArray()
{
fprintf(stderr, "BuildMultiplayerLevelNameArray()\n");
}
BOOL BuildLoadIPAddressMenu()
{
fprintf(stderr, "BuildLoadIPAddressMenu()\n");
@ -97,9 +101,9 @@ void Start_Progress_Bar()
fprintf(stderr, "Start_Progress_Bar()\n");
}
void Set_Progress_Bar_Position()
void Set_Progress_Bar_Position(int pos)
{
fprintf(stderr, "Set_Progress_Bar_Position()\n");
fprintf(stderr, "Set_Progress_Bar_Position(%d)\n", pos);
}
@ -391,6 +395,14 @@ int NumberOfUserProfiles()
return 0;
}
/* d3_func.cpp */
int GetTextureHandle(IMAGEHEADER *imageHeaderPtr)
{
fprintf(stderr, "GetTextureHandle(%p)\n", imageHeaderPtr);
return 1;
}
/* d3d_render.cpp -- some of these got mixed in with d3_func.cpp! */
int NumberOfLandscapePolygons;
int FMVParticleColour;
@ -496,13 +508,6 @@ void ReleaseD3DTexture(void* D3DTexture)
fprintf(stderr, "ReleaseD3DTexture(%p)\n", D3DTexture);
}
int GetTextureHandle(IMAGEHEADER *imageHeaderPtr)
{
fprintf(stderr, "GetTextureHandle(%p)\n", imageHeaderPtr);
return 0;
}
void FlushD3DZBuffer()
{
fprintf(stderr, "FlushD3DZBuffer()\n");
@ -713,10 +718,15 @@ void ReadJoysticks()
/* dx_proj.cpp */
int use_mmx_math = 1;
int use_mmx_math = 0;
/* cd_player.c */
void CDDA_Start()
{
fprintf(stderr, "CDDA_Start()\n");
}
void CDDA_ChangeVolume(int volume)
{
fprintf(stderr, "CDDA_ChangeVolume(%d)\n", volume);
@ -1027,135 +1037,3 @@ void AddNetMsg_SpotOtherSound(enum soundindex SoundIndex,VECTORCH *position,int
fprintf(stderr, "AddNetMsg_SpotOtherSound(%d, %p, %d)\n", SoundIndex, position, explosion);
}
/* win32 api */
size_t _mbclen(const unsigned char *s)
{
return strlen((const char *)s);
}
HANDLE CreateFile(const char *file, int write, int x, int y, int flags, int flags2, int z)
{
fprintf(stderr, "CreateFile(%s, %d, %d, %d, %d, %d, %d)\n", file, write, x, y, flags, flags2, z);
return -1;
}
HANDLE CreateFileA(const char *file, int write, int x, int y, int flags, int flags2, int z)
{
return CreateFileA(file, write, x, y, flags, flags2, z);
}
int WriteFile(HANDLE file, const void *data, int len, /* unsigned long */ void *byteswritten, int x)
{
fprintf(stderr, "WriteFile(%d, %p, %d, %p, %d)\n", file, data, len, byteswritten, x);
return -1;
}
int ReadFile(HANDLE file, void *data, int len, /* unsigned long */ void *bytesread, int x)
{
fprintf(stderr, "ReadFile(%d, %p, %d, %p, %d)\n", file, data, len, bytesread, x);
return -1;
}
int GetFileSize(HANDLE file, int x)
{
fprintf(stderr, "GetFileSize(%d, %d)\n", file, x);
return -1;
}
int CloseHandle(HANDLE file)
{
fprintf(stderr, "CloseHandle(%d)\n", file);
return -1;
}
int DeleteFile(const char *file)
{
fprintf(stderr, "DeleteFile(%s)\n", file);
return -1;
}
int DeleteFileA(const char *file)
{
return DeleteFile(file);
}
int GetDiskFreeSpace(int x, unsigned long *a, unsigned long *b, unsigned long *c, unsigned long *d)
{
fprintf(stderr, "GetDiskFreeSpace(%d, %p, %p, %p, %p)\n", x, a, b, c, d);
return -1;
}
int CreateDirectory(char *dir, int x)
{
fprintf(stderr, "CreateDirectory(%s, %d)\n", dir, x);
return -1;
}
int MoveFile(const char *newfile, const char *oldfile)
{
fprintf(stderr, "MoveFile(%s, %s)\n", newfile, oldfile);
return -1;
}
int MoveFileA(const char *newfile, const char *oldfile)
{
return MoveFile(newfile, oldfile);
}
int CopyFile(const char *newfile, const char *oldfile, int x)
{
fprintf(stderr, "CopyFile(%s, %s, %d)\n", newfile, oldfile, x);
return -1;
}
int GetFileAttributes(const char *file)
{
fprintf(stderr, "GetFileAttributes(%s)\n", file);
return -1;
}
int GetFileAttributesA(const char *file)
{
return GetFileAttributes(file);
}
int SetFilePointer(HANDLE file, int x, int y, int z)
{
fprintf(stderr, "SetFilePointer(%d, %d, %d, %d)\n", file, x, y, z);
return -1;
}
int SetEndOfFile(HANDLE file)
{
fprintf(stderr, "SetEndOfFile(%d)\n", file);
return -1;
}
/* time in miliseconds */
int timeGetTime()
{
fprintf(stderr, "timeGetTime()\n");
return 0;
}
int GetTickCount()
{
fprintf(stderr, "GetTickCount()\n");
return 0;
}

View file

@ -6,7 +6,12 @@ typedef struct AwBackupTexture * AW_BACKUPTEXTUREHANDLE;
typedef struct DIRECTDRAWSURFACE
{
int x;
int id;
int w;
int h;
unsigned char *data;
int type;
} DIRECTDRAWSURFACE;
typedef DIRECTDRAWSURFACE * LPDIRECTDRAWSURFACE;
@ -14,7 +19,12 @@ typedef DIRECTDRAWSURFACE DDSurface;
typedef struct DIRECT3DTEXTURE
{
int x;
int id;
int w;
int h;
unsigned char *data;
int type;
} DIRECT3DTEXTURE;
typedef DIRECT3DTEXTURE * LPDIRECT3DTEXTURE;

View file

@ -381,7 +381,7 @@ namespace AwTl
AwTl::SurfUnion AwBackupTexture::Restore(AwTl::CreateTextureParms const & rParams)
{
using namespace AwTl;
ChoosePixelFormat(rParams);
if (!pixelFormat.validB)
@ -510,12 +510,15 @@ void AwBackupTexture::ChoosePixelFormat(AwTl::CreateTextureParms const & _parmsR
AwTl::SurfUnion AwBackupTexture::CreateTexture(AwTl::CreateTextureParms const & _parmsR)
{
fprintf(stderr, "AwBackupTexture::CreateTexture(...)\n");
return static_cast<D3DTexture *>(NULL);
#if 0
using namespace AwTl;
fprintf(stderr, "AwBackupTexture::CreateTexture(...) This is where we could convert the image to RGB/RGBA, and so on\n");
SurfUnion pRet = static_cast<D3DTexture *>(new D3DTexture);
return pRet;
#if 0
// which flags to use?
unsigned fMyFlags =
_parmsR.flags & AW_TLF_PREVSRCALL ? db_assert1(_parmsR.restoreH),
@ -1390,7 +1393,8 @@ namespace AwTl {
// CHECK_MEDIA_ERRORS("loading file headers")
ON_ERROR_RETURN_NULL("loading file headers")
#if 0
ChoosePixelFormat(rParams);
if (!pixelFormat.validB)
@ -1401,7 +1405,12 @@ namespace AwTl {
awTlLastErr = pixelFormat.validB && driverDesc.ddP && (driverDesc.validB || !rParams.loadTextureB) ? AW_TLE_OK : AW_TLE_NOINIT;
ON_ERROR_RETURN_NULL("initializing load")
#endif
fprintf(stderr, "TexFileLoader::Load Pixel Format?! It's not implemented!\n");
/* TODO */
AllocateBuffers(/* rParams.backupHP ? true : */ false, /* pixelFormat.palettizedB ? ? 1<<pixelFormat.bitsPerPixel : */ 0);
// CHECK_MEDIA_ERRORS("allocating buffers")
ON_ERROR_RETURN_NULL("allocating buffers")
@ -2079,6 +2088,7 @@ D3DTexture * _AWTL_VARARG AwCreateTexture(char const * _argFormatS, ...)
parms.loadTextureB = true;
bool bParmsOK = ParseParams(&parms, _argFormatS, ap);
va_end(ap);
return bParmsOK ? LoadFromParams(&parms).textureP : NULL;
}

View file

@ -79,7 +79,7 @@ int db_option = 0; /* Default is off. */
#define PROP_WIDTH 0
/* Logfile name */
#define LOGFILE_NAME "LOGFILE.TXT"
#define LOGFILE_NAME "logfile.txt"
/* Set this to 1 if the logfile name is an absolute path. Otherwise the
* logfile will go in the directory that is current when db_log_init()
@ -405,7 +405,8 @@ void db_log_init(void)
sprintf( LogFileNameP, "%s", db_log_file_name );
#else
/* Append the log file name to the current working directory. */
sprintf( LogFileNameP, "%s\\%s", getcwd( LogFileNameP, 240 ),
/* TODO - path seperator */
sprintf( LogFileNameP, "%s/%s", getcwd( LogFileNameP, 240 ),
db_log_file_name );
#endif

197
src/winapi.c Normal file
View file

@ -0,0 +1,197 @@
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "fixer.h"
void FixFilename(char *str)
{
int len = strlen(str);
int i;
for (i = 0; i < len; i++) {
if (str[i] == '\\')
str[i] = '/';
else if (str[i] == '\r')
str[i] = 0;
else if (str[i] == '\n')
str[i] = 0;
else
str[i] = tolower(str[i]);
}
}
size_t _mbclen(const unsigned char *s)
{
return strlen((const char *)s);
}
HANDLE CreateFile(const char *file, int mode, int x, int y, int flags, int flags2, int z)
{
int fd;
fprintf(stderr, "CreateFile(%s, %d, %d, %d, %d, %d, %d)\n", file, mode, x, y, flags, flags2, z);
switch(mode) {
case GENERIC_READ:
if (flags != OPEN_EXISTING) {
fprintf(stderr, "CreateFile: GENERIC_READ flags = %d\n", flags);
exit(EXIT_FAILURE);
}
fd = open(file, O_RDONLY);
if (fd == -1)
return -1;
break;
case GENERIC_WRITE:
// break;
case GENERIC_READ|GENERIC_WRITE:
// break;
default:
fprintf(stderr, "CreateFile: unknown mode %d\n", mode);
exit(EXIT_FAILURE);
}
return (HANDLE)fd;
}
HANDLE CreateFileA(const char *file, int write, int x, int y, int flags, int flags2, int z)
{
return CreateFile(file, write, x, y, flags, flags2, z);
}
int WriteFile(HANDLE file, const void *data, int len, /* unsigned long */ void *byteswritten, int x)
{
unsigned long *bw;
fprintf(stderr, "WriteFile(%d, %p, %d, %p, %d)\n", file, data, len, byteswritten, x);
bw = (unsigned long *)byteswritten;
*bw = write(file, data, len);
return 0;
}
int ReadFile(HANDLE file, void *data, int len, /* unsigned long */ void *bytesread, int x)
{
unsigned long *br;
fprintf(stderr, "ReadFile(%d, %p, %d, %p, %d)\n", file, data, len, bytesread, x);
br = (unsigned long *)bytesread;
*br = read(file, data, len);
return 1; /* TODO: what is the correct return value? */
}
int GetFileSize(HANDLE file, int x)
{
struct stat buf;
fprintf(stderr, "GetFileSize(%d, %d)\n", file, x);
if (fstat(file, &buf) == -1)
return -1;
return buf.st_size;
}
int CloseHandle(HANDLE file)
{
fprintf(stderr, "CloseHandle(%d)\n", file);
close(file);
return 0;
}
int DeleteFile(const char *file)
{
fprintf(stderr, "DeleteFile(%s)\n", file);
return -1;
}
int DeleteFileA(const char *file)
{
return DeleteFile(file);
}
int GetDiskFreeSpace(int x, unsigned long *a, unsigned long *b, unsigned long *c, unsigned long *d)
{
fprintf(stderr, "GetDiskFreeSpace(%d, %p, %p, %p, %p)\n", x, a, b, c, d);
return -1;
}
int CreateDirectory(char *dir, int x)
{
fprintf(stderr, "CreateDirectory(%s, %d)\n", dir, x);
return -1;
}
int MoveFile(const char *newfile, const char *oldfile)
{
fprintf(stderr, "MoveFile(%s, %s)\n", newfile, oldfile);
return -1;
}
int MoveFileA(const char *newfile, const char *oldfile)
{
return MoveFile(newfile, oldfile);
}
int CopyFile(const char *newfile, const char *oldfile, int x)
{
fprintf(stderr, "CopyFile(%s, %s, %d)\n", newfile, oldfile, x);
return -1;
}
int GetFileAttributes(const char *file)
{
fprintf(stderr, "GetFileAttributes(%s)\n", file);
return -1;
}
int GetFileAttributesA(const char *file)
{
return GetFileAttributes(file);
}
int SetFilePointer(HANDLE file, int x, int y, int z)
{
fprintf(stderr, "SetFilePointer(%d, %d, %d, %d)\n", file, x, y, z);
return -1;
}
int SetEndOfFile(HANDLE file)
{
fprintf(stderr, "SetEndOfFile(%d)\n", file);
return -1;
}
/* time in miliseconds */
int timeGetTime()
{
fprintf(stderr, "timeGetTime()\n");
return 0;
}
int GetTickCount()
{
fprintf(stderr, "GetTickCount()\n");
return 0;
}