Work on 64 bit systems.

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1622 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
meep-eep
2005-04-08 21:51:49 +00:00
parent 9aef15f5d0
commit 61d1e64ba4
3 changed files with 58 additions and 30 deletions
+21 -10
View File
@@ -25,9 +25,19 @@
#include "coderes.h" #include "coderes.h"
#include "races.h" #include "races.h"
#include "libs/compiler.h"
#include <ctype.h> #include <ctype.h>
typedef struct
{
MEM_HANDLE handle _ALIGNED_ON(sizeof (MEM_HANDLE));
RACE_DESC data _ALIGNED_ANY;
} CODERES_STRUCT;
MEM_HANDLE MEM_HANDLE
LoadVidInstance (DWORD res) LoadVidInstance (DWORD res)
{ {
@@ -82,7 +92,7 @@ enum
MEM_HANDLE hData; MEM_HANDLE hData;
which_res = GetResFileChar (fp); which_res = GetResFileChar (fp);
hData = mem_request (sizeof (MEM_HANDLE) + sizeof (RACE_DESC)); hData = mem_request (sizeof (CODERES_STRUCT));
if (hData) if (hData)
{ {
RACE_DESCPTR RDPtr; RACE_DESCPTR RDPtr;
@@ -298,10 +308,11 @@ enum
} }
else else
{ {
MEM_HANDLE *lp; CODERES_STRUCT *cs;
lp = (MEM_HANDLE *)mem_lock (hData); cs = (CODERES_STRUCT *) mem_lock (hData);
*((RACE_DESCPTR)&lp[1]) = *RDPtr; cs->data = *RDPtr;
// Structure assignment.
mem_unlock (hData); mem_unlock (hData);
} }
} }
@@ -341,20 +352,20 @@ DestroyCodeRes (MEM_HANDLE hCode)
PVOID PVOID
CaptureCodeRes (MEM_HANDLE hCode, PVOID pData, PVOID *ppLocData) CaptureCodeRes (MEM_HANDLE hCode, PVOID pData, PVOID *ppLocData)
{ {
MEM_HANDLE *p; CODERES_STRUCT *cs;
if(hCode==0) if (hCode == 0)
{ {
fprintf(stderr, "Ack! dummy.c::CaptureCodeRes() hCode==0! FATAL!\n"); fprintf(stderr, "Ack! dummy.c::CaptureCodeRes() hCode==0! FATAL!\n");
return(0); return(0);
} }
p = (MEM_HANDLE *)mem_lock (hCode); cs = (CODERES_STRUCT *) mem_lock (hCode);
*p = hCode; cs->handle = hCode;
*ppLocData = &p[1]; *ppLocData = (void *) &cs->data;
(void) pData; /* Satisfying compiler (unused parameter) */ (void) pData; /* Satisfying compiler (unused parameter) */
return (p); return (void *) cs;
} }
+2
View File
@@ -54,6 +54,7 @@ if (master_q.head != 0)
SHIP_INFOPTR ShipInfoPtr; SHIP_INFOPTR ShipInfoPtr;
TaskSwitch (); TaskSwitch ();
// XXX: what is this doing here?
BuiltShipPtr = LockStarShip (&master_q, hBuiltShip); BuiltShipPtr = LockStarShip (&master_q, hBuiltShip);
load_ship (BuiltShipPtr, FALSE); load_ship (BuiltShipPtr, FALSE);
@@ -92,6 +93,7 @@ if (master_q.head != 0)
} }
TaskSwitch (); TaskSwitch ();
// XXX: what is this doing here?
} }
void void
+35 -20
View File
@@ -21,6 +21,7 @@
#include "units.h" #include "units.h"
#include "element.h" #include "element.h"
#include "libs/compiler.h"
#include "libs/sndlib.h" #include "libs/sndlib.h"
@@ -62,7 +63,11 @@
typedef struct captain_stuff typedef struct captain_stuff
{ {
FRAME background, turn, thrust, weapon, special; FRAME background;
FRAME turn;
FRAME thrust;
FRAME weapon;
FRAME special;
} CAPTAIN_STUFF; } CAPTAIN_STUFF;
typedef CAPTAIN_STUFF *PCAPTAIN_STUFF; typedef CAPTAIN_STUFF *PCAPTAIN_STUFF;
#define CAPTAIN_STUFFPTR PCAPTAIN_STUFF #define CAPTAIN_STUFFPTR PCAPTAIN_STUFF
@@ -189,19 +194,25 @@ typedef struct
typedef DATA_STUFF *PDATA_STUFF; typedef DATA_STUFF *PDATA_STUFF;
#define DATA_STUFFPTR PDATA_STUFF #define DATA_STUFFPTR PDATA_STUFF
typedef void (PREPROCESS_FUNC) (PELEMENT ElementPtr);
typedef void (POSTPROCESS_FUNC) (PELEMENT ElementPtr);
typedef COUNT (INIT_WEAPON_FUNC) (PELEMENT ElementPtr, HELEMENT Weapon[]);
typedef struct race_desc typedef struct race_desc
{ {
SHIP_INFO ship_info; SHIP_INFO ship_info _ALIGNED_ANY;
CHARACTERISTIC_STUFF characteristics; CHARACTERISTIC_STUFF characteristics _ALIGNED_ANY;
DATA_STUFF ship_data; DATA_STUFF ship_data _ALIGNED_ANY;
INTEL_STUFF cyborg_control; INTEL_STUFF cyborg_control _ALIGNED_ANY;
void (*preprocess_func) (PELEMENT ElementPtr); PREPROCESS_FUNC *preprocess_func
void (*postprocess_func) (PELEMENT ElementPtr); _ALIGNED_ON(sizeof (PREPROCESS_FUNC *));
COUNT (*init_weapon_func) (PELEMENT ElementPtr, HELEMENT POSTPROCESS_FUNC *postprocess_func
Weapon[]); _ALIGNED_ON(sizeof (POSTPROCESS_FUNC *));
INIT_WEAPON_FUNC *init_weapon_func
_ALIGNED_ON(sizeof (INIT_WEAPON_FUNC *));
PVOID CodeRef; PVOID CodeRef _ALIGNED_ON(sizeof (PVOID));
} RACE_DESC; } RACE_DESC;
typedef RACE_DESC *PRACE_DESC; typedef RACE_DESC *PRACE_DESC;
#define RACE_DESCPTR PRACE_DESC #define RACE_DESCPTR PRACE_DESC
@@ -210,29 +221,32 @@ typedef QUEUE_HANDLE HSTARSHIP;
typedef struct typedef struct
{ {
HSTARSHIP pred, succ; HSTARSHIP pred;
HSTARSHIP succ;
DWORD RaceResIndex; DWORD RaceResIndex;
RACE_DESCPTR RaceDescPtr; RACE_DESCPTR RaceDescPtr;
BYTE captains_name_index; BYTE captains_name_index;
BYTE weapon_counter, BYTE weapon_counter;
special_counter, BYTE special_counter;
energy_counter; BYTE energy_counter;
BYTE ship_input_state; BYTE ship_input_state;
UWORD cur_status_flags, old_status_flags; UWORD cur_status_flags _ALIGNED_ON(sizeof (UWORD));
UWORD old_status_flags _ALIGNED_ON(sizeof (UWORD));
HELEMENT hShip; FRAME silhouette _ALIGNED_ON(sizeof (FRAME));
COUNT ShipFacing; HELEMENT hShip _ALIGNED_ON(sizeof (HELEMENT));
FRAME silhouette; COUNT ShipFacing _ALIGNED_ON(sizeof (COUNT));
} STARSHIP; } STARSHIP;
typedef STARSHIP *PSTARSHIP; typedef STARSHIP *PSTARSHIP;
#define STARSHIPPTR PSTARSHIP #define STARSHIPPTR PSTARSHIP
typedef struct typedef struct
{ {
HSTARSHIP pred, succ; HSTARSHIP pred;
HSTARSHIP succ;
DWORD RaceResIndex; DWORD RaceResIndex;
RACE_DESCPTR RaceDescPtr; RACE_DESCPTR RaceDescPtr;
@@ -243,7 +257,8 @@ typedef SHIP_FRAGMENT *PSHIP_FRAGMENT;
typedef struct typedef struct
{ {
HSTARSHIP pred, succ; HSTARSHIP pred;
HSTARSHIP succ;
DWORD RaceResIndex; DWORD RaceResIndex;
RACE_DESCPTR RaceDescPtr; RACE_DESCPTR RaceDescPtr;