Adds LoadGeneralParameters function
This commit is contained in:
parent
2ae8c4bc8d
commit
7d1789a6ef
3
Makefile
3
Makefile
|
|
@ -16,7 +16,8 @@ clean:
|
|||
test: build
|
||||
@echo "Building tests"
|
||||
@$(MAKE) -C test build
|
||||
test/build/c1tests
|
||||
@cp -r test/assets/DATA test/build
|
||||
@(cd test/build && ./c1tests)
|
||||
|
||||
run: build
|
||||
@echo "Running dethrace"
|
||||
|
|
|
|||
|
|
@ -40,8 +40,6 @@ br_error BrV1dbBegin() {
|
|||
return 4103;
|
||||
}
|
||||
|
||||
printf("BrV1dbBegin\n");
|
||||
|
||||
BrMemSet(&v1db, 0, sizeof(br_v1db_state));
|
||||
v1db.active = 1;
|
||||
BrRegistryNew(&v1db.reg_models);
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ DEPS := $(OBJS:.o=.d)
|
|||
INC_DIRS := $(shell find $(SRC_DIR) -type d) $(BR_SRC_DIR)
|
||||
INC_FLAGS := $(addprefix -I,$(INC_DIRS))
|
||||
|
||||
CFLAGS ?= $(INC_FLAGS) -Wno-return-type -Wno-missing-declarations -Werror=implicit-function-declaration
|
||||
LDFLAGS ?= -lm
|
||||
CFLAGS ?= $(INC_FLAGS) -g -Wno-return-type -Wno-missing-declarations -Werror=implicit-function-declaration
|
||||
LDFLAGS ?= -lm -fno-pie
|
||||
|
||||
.PHONY: clean build test
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,16 @@
|
|||
#ifndef _DISPLAYS_H_
|
||||
#define _DISPLAYS_H_
|
||||
|
||||
#include "dr_types.h"
|
||||
#include "br_types.h"
|
||||
#include "dr_types.h"
|
||||
|
||||
extern int gDim_amount;
|
||||
|
||||
// Offset: 0
|
||||
// Size: 56
|
||||
// EAX: pStr
|
||||
// EDX: pFudge_colon
|
||||
void GetTimerString(char *pStr, int pFudge_colon);
|
||||
void GetTimerString(char* pStr, int pFudge_colon);
|
||||
|
||||
// Offset: 56
|
||||
// Size: 116
|
||||
|
|
@ -39,7 +41,7 @@ int HeadupActive(int pIndex);
|
|||
// EDX: pX
|
||||
// EBX: pY
|
||||
// ECX: pFont
|
||||
void DRPixelmapText(br_pixelmap *pPixelmap, int pX, int pY, tDR_font *pFont, char *pText, int pRight_edge);
|
||||
void DRPixelmapText(br_pixelmap* pPixelmap, int pX, int pY, tDR_font* pFont, char* pText, int pRight_edge);
|
||||
|
||||
// Offset: 1032
|
||||
// Size: 550
|
||||
|
|
@ -47,7 +49,7 @@ void DRPixelmapText(br_pixelmap *pPixelmap, int pX, int pY, tDR_font *pFont, cha
|
|||
// EDX: pX
|
||||
// EBX: pY
|
||||
// ECX: pFont
|
||||
void DRPixelmapCleverText2(br_pixelmap *pPixelmap, int pX, int pY, tDR_font *pFont, signed char *pText, int pRight_edge);
|
||||
void DRPixelmapCleverText2(br_pixelmap* pPixelmap, int pX, int pY, tDR_font* pFont, signed char* pText, int pRight_edge);
|
||||
|
||||
// Offset: 1584
|
||||
// Size: 248
|
||||
|
|
@ -55,11 +57,11 @@ void DRPixelmapCleverText2(br_pixelmap *pPixelmap, int pX, int pY, tDR_font *pFo
|
|||
// EDX: pLeft
|
||||
// EBX: pTop
|
||||
// ECX: pRight
|
||||
void DeviouslyDimRectangle(br_pixelmap *pPixelmap, int pLeft, int pTop, int pRight, int pBottom, int pKnock_out_corners);
|
||||
void DeviouslyDimRectangle(br_pixelmap* pPixelmap, int pLeft, int pTop, int pRight, int pBottom, int pKnock_out_corners);
|
||||
|
||||
// Offset: 1832
|
||||
// Size: 461
|
||||
void DimRectangle(br_pixelmap *pPixelmap, int pLeft, int pTop, int pRight, int pBottom, int pKnock_out_corners);
|
||||
void DimRectangle(br_pixelmap* pPixelmap, int pLeft, int pTop, int pRight, int pBottom, int pKnock_out_corners);
|
||||
|
||||
// Offset: 2296
|
||||
// Size: 352
|
||||
|
|
@ -82,7 +84,7 @@ void DubreyBar(int pX_index, int pY, int pColour);
|
|||
// EDX: pLevel
|
||||
// EBX: pName
|
||||
// ECX: pBar_colour
|
||||
void DoPSPowerHeadup(int pY, int pLevel, char *pName, int pBar_colour);
|
||||
void DoPSPowerHeadup(int pY, int pLevel, char* pName, int pBar_colour);
|
||||
|
||||
// Offset: 3168
|
||||
// Size: 163
|
||||
|
|
@ -102,13 +104,13 @@ int FindAHeadupHoleWoofBarkSoundsABitRude(int pSlot_index);
|
|||
// Size: 144
|
||||
// EAX: pFont
|
||||
// EDX: pText
|
||||
int DRTextWidth(tDR_font *pFont, char *pText);
|
||||
int DRTextWidth(tDR_font* pFont, char* pText);
|
||||
|
||||
// Offset: 5952
|
||||
// Size: 206
|
||||
// EAX: pFont
|
||||
// EDX: pText
|
||||
int DRTextCleverWidth(tDR_font *pFont, signed char *pText);
|
||||
int DRTextCleverWidth(tDR_font* pFont, signed char* pText);
|
||||
|
||||
// Offset: 6160
|
||||
// Size: 98
|
||||
|
|
@ -116,17 +118,17 @@ int DRTextCleverWidth(tDR_font *pFont, signed char *pText);
|
|||
// EDX: pX
|
||||
// EBX: pY
|
||||
// ECX: pFont
|
||||
void DRPixelmapCentredText(br_pixelmap *pPixelmap, int pX, int pY, tDR_font *pFont, char *pText);
|
||||
void DRPixelmapCentredText(br_pixelmap* pPixelmap, int pX, int pY, tDR_font* pFont, char* pText);
|
||||
|
||||
// Offset: 6260
|
||||
// Size: 77
|
||||
// EAX: pText
|
||||
int IsHeadupTextClever(signed char *pText);
|
||||
int IsHeadupTextClever(signed char* pText);
|
||||
|
||||
// Offset: 6340
|
||||
// Size: 562
|
||||
// EAX: pHeadup
|
||||
int MungeHeadupWidth(tHeadup *pHeadup);
|
||||
int MungeHeadupWidth(tHeadup* pHeadup);
|
||||
|
||||
// Offset: 6904
|
||||
// Size: 605
|
||||
|
|
@ -134,7 +136,7 @@ int MungeHeadupWidth(tHeadup *pHeadup);
|
|||
// EDX: pFlash_rate
|
||||
// EBX: pLifetime
|
||||
// ECX: pFont_index
|
||||
int NewTextHeadupSlot2(int pSlot_index, int pFlash_rate, int pLifetime, int pFont_index, char *pText, int pQueue_it);
|
||||
int NewTextHeadupSlot2(int pSlot_index, int pFlash_rate, int pLifetime, int pFont_index, char* pText, int pQueue_it);
|
||||
|
||||
// Offset: 7512
|
||||
// Size: 71
|
||||
|
|
@ -142,7 +144,7 @@ int NewTextHeadupSlot2(int pSlot_index, int pFlash_rate, int pLifetime, int pFon
|
|||
// EDX: pFlash_rate
|
||||
// EBX: pLifetime
|
||||
// ECX: pFont_index
|
||||
int NewTextHeadupSlot(int pSlot_index, int pFlash_rate, int pLifetime, int pFont_index, char *pText);
|
||||
int NewTextHeadupSlot(int pSlot_index, int pFlash_rate, int pLifetime, int pFont_index, char* pText);
|
||||
|
||||
// Offset: 7584
|
||||
// Size: 496
|
||||
|
|
@ -172,7 +174,7 @@ void MoveHeadupTo(int pHeadup_index, int pNew_x, int pNew_y);
|
|||
// Size: 83
|
||||
// EAX: pHeadup_index
|
||||
// EDX: pNew_text
|
||||
void ChangeHeadupText(int pHeadup_index, char *pNew_text);
|
||||
void ChangeHeadupText(int pHeadup_index, char* pNew_text);
|
||||
|
||||
// Offset: 8964
|
||||
// Size: 199
|
||||
|
|
@ -193,7 +195,7 @@ void DoDamageScreen(tU32 pThe_time);
|
|||
|
||||
// Offset: 9664
|
||||
// Size: 404
|
||||
void PoshDrawLine(float pAngle, br_pixelmap *pDestn, int pX1, int pY1, int pX2, int pY2, int pColour);
|
||||
void PoshDrawLine(float pAngle, br_pixelmap* pDestn, int pX1, int pY1, int pX2, int pY2, int pColour);
|
||||
|
||||
// Offset: 10068
|
||||
// Size: 3133
|
||||
|
|
@ -213,7 +215,7 @@ void ChangingView();
|
|||
// Size: 445
|
||||
// EAX: pAmount
|
||||
// EDX: pPrefix_text
|
||||
void EarnCredits2(int pAmount, char *pPrefix_text);
|
||||
void EarnCredits2(int pAmount, char* pPrefix_text);
|
||||
|
||||
// Offset: 14600
|
||||
// Size: 50
|
||||
|
|
@ -236,7 +238,7 @@ void AwardTime(tU32 pTime);
|
|||
// EDX: pLeft
|
||||
// EBX: pTop
|
||||
// ECX: pRight
|
||||
void DrawRectangle(br_pixelmap *pPixelmap, int pLeft, int pTop, int pRight, int pBottom, int pColour);
|
||||
void DrawRectangle(br_pixelmap* pPixelmap, int pLeft, int pTop, int pRight, int pBottom, int pColour);
|
||||
|
||||
// Offset: 15208
|
||||
// Size: 178
|
||||
|
|
@ -244,7 +246,7 @@ void DrawRectangle(br_pixelmap *pPixelmap, int pLeft, int pTop, int pRight, int
|
|||
// EDX: pLeft
|
||||
// EBX: pTop
|
||||
// ECX: pRight
|
||||
void DrawRRectangle(br_pixelmap *pPixelmap, int pLeft, int pTop, int pRight, int pBottom, int pColour);
|
||||
void DrawRRectangle(br_pixelmap* pPixelmap, int pLeft, int pTop, int pRight, int pBottom, int pColour);
|
||||
|
||||
// Offset: 15388
|
||||
// Size: 620
|
||||
|
|
@ -252,7 +254,7 @@ void DrawRRectangle(br_pixelmap *pPixelmap, int pLeft, int pTop, int pRight, int
|
|||
// EDX: pText
|
||||
// EBX: pPixelmap
|
||||
// ECX: pLeft
|
||||
void OoerrIveGotTextInMeBoxMissus(int pFont_index, char *pText, br_pixelmap *pPixelmap, int pLeft, int pTop, int pRight, int pBottom, int pCentred);
|
||||
void OoerrIveGotTextInMeBoxMissus(int pFont_index, char* pText, br_pixelmap* pPixelmap, int pLeft, int pTop, int pRight, int pBottom, int pCentred);
|
||||
|
||||
// Offset: 16008
|
||||
// Size: 117
|
||||
|
|
@ -260,7 +262,7 @@ void OoerrIveGotTextInMeBoxMissus(int pFont_index, char *pText, br_pixelmap *pPi
|
|||
// EDX: pX
|
||||
// EBX: pY
|
||||
// ECX: pColour
|
||||
void TransBrPixelmapText(br_pixelmap *pPixelmap, int pX, int pY, br_uint_32 pColour, br_font *pFont, signed char *pText);
|
||||
void TransBrPixelmapText(br_pixelmap* pPixelmap, int pX, int pY, br_uint_32 pColour, br_font* pFont, signed char* pText);
|
||||
|
||||
// Offset: 16128
|
||||
// Size: 250
|
||||
|
|
@ -268,7 +270,7 @@ void TransBrPixelmapText(br_pixelmap *pPixelmap, int pX, int pY, br_uint_32 pCol
|
|||
// EDX: pX
|
||||
// EBX: pY
|
||||
// ECX: pFont
|
||||
void TransDRPixelmapText(br_pixelmap *pPixelmap, int pX, int pY, tDR_font *pFont, char *pText, int pRight_edge);
|
||||
void TransDRPixelmapText(br_pixelmap* pPixelmap, int pX, int pY, tDR_font* pFont, char* pText, int pRight_edge);
|
||||
|
||||
// Offset: 16380
|
||||
// Size: 250
|
||||
|
|
@ -276,6 +278,6 @@ void TransDRPixelmapText(br_pixelmap *pPixelmap, int pX, int pY, tDR_font *pFont
|
|||
// EDX: pX
|
||||
// EBX: pY
|
||||
// ECX: pFont
|
||||
void TransDRPixelmapCleverText(br_pixelmap *pPixelmap, int pX, int pY, tDR_font *pFont, char *pText, int pRight_edge);
|
||||
void TransDRPixelmapCleverText(br_pixelmap* pPixelmap, int pX, int pY, tDR_font* pFont, char* pText, int pRight_edge);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
#ifndef _GLOBVRKM_H_
|
||||
#define _GLOBVRKM_H_
|
||||
|
||||
#include "dr_types.h"
|
||||
#include "br_types.h"
|
||||
#include "dr_types.h"
|
||||
|
||||
extern float gRecovery_cost[3];
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
#ifndef _GRAPHICS_H_
|
||||
#define _GRAPHICS_H_
|
||||
|
||||
#include "dr_types.h"
|
||||
#include "br_types.h"
|
||||
#include "dr_types.h"
|
||||
|
||||
extern br_scalar gAmbient_adjustment;
|
||||
|
||||
// Offset: 0
|
||||
// Size: 44
|
||||
|
|
@ -20,7 +22,7 @@ void ResetLollipopQueue();
|
|||
// Size: 124
|
||||
// EAX: pActor
|
||||
// EDX: pIndex
|
||||
int AddToLollipopQueue(br_actor *pActor, int pIndex);
|
||||
int AddToLollipopQueue(br_actor* pActor, int pIndex);
|
||||
|
||||
// Offset: 256
|
||||
// Size: 237
|
||||
|
|
@ -32,7 +34,7 @@ void RenderLollipops();
|
|||
// EDX: pX1
|
||||
// EBX: pY1
|
||||
// ECX: pX2
|
||||
void DRDrawLine(br_pixelmap *pDestn, int pX1, int pY1, int pX2, int pY2, int pColour);
|
||||
void DRDrawLine(br_pixelmap* pDestn, int pX1, int pY1, int pX2, int pY2, int pColour);
|
||||
|
||||
// Offset: 604
|
||||
// Size: 90
|
||||
|
|
@ -40,7 +42,7 @@ void DRDrawLine(br_pixelmap *pDestn, int pX1, int pY1, int pX2, int pY2, int pCo
|
|||
// EDX: pX
|
||||
// EBX: pY
|
||||
// ECX: pY_pitch
|
||||
void DrawDigitAt(br_pixelmap *gImage, int pX, int pY, int pY_pitch, int pValue);
|
||||
void DrawDigitAt(br_pixelmap* gImage, int pX, int pY, int pY_pitch, int pValue);
|
||||
|
||||
// Offset: 696
|
||||
// Size: 156
|
||||
|
|
@ -48,12 +50,12 @@ void DrawDigitAt(br_pixelmap *gImage, int pX, int pY, int pY_pitch, int pValue);
|
|||
// EDX: pX
|
||||
// EBX: pY
|
||||
// ECX: pX_pitch
|
||||
void DrawNumberAt(br_pixelmap *gImage, int pX, int pY, int pX_pitch, int pY_pitch, int pValue, int pDigit_count, int pLeading_zeroes);
|
||||
void DrawNumberAt(br_pixelmap* gImage, int pX, int pY, int pX_pitch, int pY_pitch, int pValue, int pDigit_count, int pLeading_zeroes);
|
||||
|
||||
// Offset: 852
|
||||
// Size: 350
|
||||
// EAX: pPalette
|
||||
void BuildColourTable(br_pixelmap *pPalette);
|
||||
void BuildColourTable(br_pixelmap* pPalette);
|
||||
|
||||
// Offset: 1204
|
||||
// Size: 44
|
||||
|
|
@ -63,14 +65,14 @@ void ClearConcussion();
|
|||
// Size: 137
|
||||
// EAX: pSource
|
||||
// EDX: pCount
|
||||
tS8* SkipLines(tS8 *pSource, int pCount);
|
||||
tS8* SkipLines(tS8* pSource, int pCount);
|
||||
|
||||
// Offset: 1388
|
||||
// Size: 126
|
||||
// EAX: pDst
|
||||
// EDX: pSrc
|
||||
// EBX: pN
|
||||
void CopyWords(char *pDst, char *pSrc, int pN);
|
||||
void CopyWords(char* pDst, char* pSrc, int pN);
|
||||
|
||||
// Offset: 1516
|
||||
// Size: 606
|
||||
|
|
@ -78,7 +80,7 @@ void CopyWords(char *pDst, char *pSrc, int pN);
|
|||
// EDX: pDest_x
|
||||
// EBX: pOffset_x
|
||||
// ECX: pDest_y
|
||||
void Copy8BitStripImageTo16Bit(br_pixelmap *pDest, br_int_16 pDest_x, br_int_16 pOffset_x, br_int_16 pDest_y, br_int_16 pOffset_y, tS8 *pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_uint_16 pWidth, br_uint_16 pHeight);
|
||||
void Copy8BitStripImageTo16Bit(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pOffset_x, br_int_16 pDest_y, br_int_16 pOffset_y, tS8* pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_uint_16 pWidth, br_uint_16 pHeight);
|
||||
|
||||
// Offset: 2124
|
||||
// Size: 651
|
||||
|
|
@ -86,7 +88,7 @@ void Copy8BitStripImageTo16Bit(br_pixelmap *pDest, br_int_16 pDest_x, br_int_16
|
|||
// EDX: pDest_x
|
||||
// EBX: pOffset_x
|
||||
// ECX: pDest_y
|
||||
void CopyStripImage(br_pixelmap *pDest, br_int_16 pDest_x, br_int_16 pOffset_x, br_int_16 pDest_y, br_int_16 pOffset_y, tS8 *pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_uint_16 pWidth, br_uint_16 pHeight);
|
||||
void CopyStripImage(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pOffset_x, br_int_16 pDest_y, br_int_16 pOffset_y, tS8* pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_uint_16 pWidth, br_uint_16 pHeight);
|
||||
|
||||
// Offset: 2776
|
||||
// Size: 507
|
||||
|
|
@ -117,24 +119,24 @@ void ScreenLarger();
|
|||
// EAX: pPalette
|
||||
// EDX: pFirst_colour
|
||||
// EBX: pCount
|
||||
void DRSetPaletteEntries(br_pixelmap *pPalette, int pFirst_colour, int pCount);
|
||||
void DRSetPaletteEntries(br_pixelmap* pPalette, int pFirst_colour, int pCount);
|
||||
|
||||
// Offset: 4144
|
||||
// Size: 128
|
||||
// EAX: pThe_palette
|
||||
// EDX: pSet_current_palette
|
||||
void DRSetPalette3(br_pixelmap *pThe_palette, int pSet_current_palette);
|
||||
void DRSetPalette3(br_pixelmap* pThe_palette, int pSet_current_palette);
|
||||
|
||||
// Offset: 4272
|
||||
// Size: 140
|
||||
// EAX: pThe_palette
|
||||
// EDX: pSet_current_palette
|
||||
void DRSetPalette2(br_pixelmap *pThe_palette, int pSet_current_palette);
|
||||
void DRSetPalette2(br_pixelmap* pThe_palette, int pSet_current_palette);
|
||||
|
||||
// Offset: 4412
|
||||
// Size: 50
|
||||
// EAX: pThe_palette
|
||||
void DRSetPalette(br_pixelmap *pThe_palette);
|
||||
void DRSetPalette(br_pixelmap* pThe_palette);
|
||||
|
||||
// Offset: 4464
|
||||
// Size: 415
|
||||
|
|
@ -143,7 +145,7 @@ void InitializePalettes();
|
|||
// Offset: 4880
|
||||
// Size: 66
|
||||
// EAX: pPal_name
|
||||
void SwitchToPalette(char *pPal_name);
|
||||
void SwitchToPalette(char* pPal_name);
|
||||
|
||||
// Offset: 4948
|
||||
// Size: 104
|
||||
|
|
@ -191,7 +193,7 @@ void SufferFromConcussion(float pSeriousness);
|
|||
// EDX: pDepth_buffer
|
||||
// EBX: pCamera
|
||||
// ECX: pCamera_to_world
|
||||
void ProcessNonTrackActors(br_pixelmap *pRender_buffer, br_pixelmap *pDepth_buffer, br_actor *pCamera, br_matrix34 *pCamera_to_world, br_matrix34 *pOld_camera_matrix);
|
||||
void ProcessNonTrackActors(br_pixelmap* pRender_buffer, br_pixelmap* pDepth_buffer, br_actor* pCamera, br_matrix34* pCamera_to_world, br_matrix34* pOld_camera_matrix);
|
||||
|
||||
// Offset: 7188
|
||||
// Size: 119
|
||||
|
|
@ -204,14 +206,14 @@ int OppositeColour(int pColour);
|
|||
// EDX: pTime
|
||||
// EBX: pTrans
|
||||
// ECX: pPos
|
||||
void DrawMapBlip(tCar_spec *pCar, tU32 pTime, br_matrix34 *pTrans, br_vector3 *pPos, int pColour);
|
||||
void DrawMapBlip(tCar_spec* pCar, tU32 pTime, br_matrix34* pTrans, br_vector3* pPos, int pColour);
|
||||
|
||||
// Offset: 9112
|
||||
// Size: 257
|
||||
// EAX: pTime
|
||||
// EDX: pPos
|
||||
// EBX: pColour
|
||||
void DrawMapSmallBlip(tU32 pTime, br_vector3 *pPos, int pColour);
|
||||
void DrawMapSmallBlip(tU32 pTime, br_vector3* pPos, int pColour);
|
||||
|
||||
// Offset: 9372
|
||||
// Size: 651
|
||||
|
|
@ -219,19 +221,19 @@ void DrawMapSmallBlip(tU32 pTime, br_vector3 *pPos, int pColour);
|
|||
// EDX: pCar
|
||||
// EBX: p1
|
||||
// ECX: p2
|
||||
void MungeClipPlane(br_vector3 *pLight, tCar_spec *pCar, br_vector3 *p1, br_vector3 *p2, br_scalar pY_offset);
|
||||
void MungeClipPlane(br_vector3* pLight, tCar_spec* pCar, br_vector3* p1, br_vector3* p2, br_scalar pY_offset);
|
||||
|
||||
// Offset: 10024
|
||||
// Size: 180
|
||||
// EAX: pCar
|
||||
// EDX: pLight
|
||||
// EBX: pIndex_1
|
||||
void TryThisEdge(tCar_spec *pCar, br_vector3 *pLight, int pIndex_1, br_scalar pSign_1, int pIndex_2, br_scalar pSign_2, int pPoint_index_1, int pPoint_index_2, br_scalar pY_offset);
|
||||
void TryThisEdge(tCar_spec* pCar, br_vector3* pLight, int pIndex_1, br_scalar pSign_1, int pIndex_2, br_scalar pSign_2, int pPoint_index_1, int pPoint_index_2, br_scalar pY_offset);
|
||||
|
||||
// Offset: 10204
|
||||
// Size: 104
|
||||
// EAX: pPos
|
||||
br_scalar DistanceFromPlane(br_vector3 *pPos, br_scalar pA, br_scalar pB, br_scalar pC, br_scalar pD);
|
||||
br_scalar DistanceFromPlane(br_vector3* pPos, br_scalar pA, br_scalar pB, br_scalar pC, br_scalar pD);
|
||||
|
||||
// Offset: 10308
|
||||
// Size: 84
|
||||
|
|
@ -247,7 +249,7 @@ void EnableLights();
|
|||
// EDX: pWorld
|
||||
// EBX: pTrack_spec
|
||||
// ECX: pCamera
|
||||
void ProcessShadow(tCar_spec *pCar, br_actor *pWorld, tTrack_spec *pTrack_spec, br_actor *pCamera, br_matrix34 *pCamera_to_world_transform, br_scalar pDistance_factor);
|
||||
void ProcessShadow(tCar_spec* pCar, br_actor* pWorld, tTrack_spec* pTrack_spec, br_actor* pCamera, br_matrix34* pCamera_to_world_transform, br_scalar pDistance_factor);
|
||||
|
||||
// Offset: 15140
|
||||
// Size: 519
|
||||
|
|
@ -255,7 +257,7 @@ void ProcessShadow(tCar_spec *pCar, br_actor *pWorld, tTrack_spec *pTrack_spec,
|
|||
// EDX: pTrack_spec
|
||||
// EBX: pCamera
|
||||
// ECX: pCamera_to_world_transform
|
||||
void RenderShadows(br_actor *pWorld, tTrack_spec *pTrack_spec, br_actor *pCamera, br_matrix34 *pCamera_to_world_transform);
|
||||
void RenderShadows(br_actor* pWorld, tTrack_spec* pTrack_spec, br_actor* pCamera, br_matrix34* pCamera_to_world_transform);
|
||||
|
||||
// Offset: 15660
|
||||
// Size: 247
|
||||
|
|
@ -266,7 +268,7 @@ void FlashyMapCheckpoint(int pIndex, tU32 pTime);
|
|||
// Offset: 15908
|
||||
// Size: 252
|
||||
// EAX: pPixelmap
|
||||
int ConditionallyFillWithSky(br_pixelmap *pPixelmap);
|
||||
int ConditionallyFillWithSky(br_pixelmap* pPixelmap);
|
||||
|
||||
// Offset: 16160
|
||||
// Size: 3751
|
||||
|
|
@ -293,7 +295,7 @@ void ResetPalette();
|
|||
// Size: 65
|
||||
// EAX: pPtr
|
||||
// EDX: pDarken_amount
|
||||
void Darken(tU8 *pPtr, unsigned int pDarken_amount);
|
||||
void Darken(tU8* pPtr, unsigned int pDarken_amount);
|
||||
|
||||
// Offset: 20200
|
||||
// Size: 194
|
||||
|
|
@ -319,7 +321,7 @@ void EnsureRenderPalette();
|
|||
// Offset: 20812
|
||||
// Size: 248
|
||||
// EAX: pPixmap_name
|
||||
void SplashScreenWith(char *pPixmap_name);
|
||||
void SplashScreenWith(char* pPixmap_name);
|
||||
|
||||
// Offset: 21060
|
||||
// Size: 48
|
||||
|
|
@ -327,7 +329,7 @@ void EnsurePaletteUp();
|
|||
|
||||
// Offset: 21108
|
||||
// Size: 103
|
||||
br_uint_32 AmbientificateMaterial(br_material *pMat, void *pArg);
|
||||
br_uint_32 AmbientificateMaterial(br_material* pMat, void* pArg);
|
||||
|
||||
// Offset: 21212
|
||||
// Size: 60
|
||||
|
|
@ -343,14 +345,14 @@ void InitAmbience();
|
|||
// EDX: pDest_x
|
||||
// EBX: pDest_y
|
||||
// ECX: pSource
|
||||
void DRPixelmapRectangleMaskedCopy(br_pixelmap *pDest, br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap *pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_int_16 pWidth, br_int_16 pHeight);
|
||||
void DRPixelmapRectangleMaskedCopy(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap* pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_int_16 pWidth, br_int_16 pHeight);
|
||||
|
||||
// Offset: 22120
|
||||
// Size: 86
|
||||
// EAX: pDest_x
|
||||
// EDX: pDest_y
|
||||
// EBX: pSource
|
||||
void DRMaskedStamp(br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap *pSource);
|
||||
void DRMaskedStamp(br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap* pSource);
|
||||
|
||||
// Offset: 22208
|
||||
// Size: 332
|
||||
|
|
@ -358,7 +360,7 @@ void DRMaskedStamp(br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap *pSource);
|
|||
// EDX: pDest_x
|
||||
// EBX: pDest_y
|
||||
// ECX: pSource
|
||||
void DRPixelmapRectangleOnscreenCopy(br_pixelmap *pDest, br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap *pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_int_16 pWidth, br_int_16 pHeight);
|
||||
void DRPixelmapRectangleOnscreenCopy(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap* pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_int_16 pWidth, br_int_16 pHeight);
|
||||
|
||||
// Offset: 22540
|
||||
// Size: 823
|
||||
|
|
@ -366,7 +368,7 @@ void DRPixelmapRectangleOnscreenCopy(br_pixelmap *pDest, br_int_16 pDest_x, br_i
|
|||
// EDX: pDest_x
|
||||
// EBX: pDest_y
|
||||
// ECX: pSource
|
||||
void DRPixelmapRectangleShearedCopy(br_pixelmap *pDest, br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap *pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_int_16 pWidth, br_int_16 pHeight, tX1616 pShear);
|
||||
void DRPixelmapRectangleShearedCopy(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap* pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_int_16 pWidth, br_int_16 pHeight, tX1616 pShear);
|
||||
|
||||
// Offset: 23364
|
||||
// Size: 341
|
||||
|
|
@ -374,7 +376,7 @@ void DRPixelmapRectangleShearedCopy(br_pixelmap *pDest, br_int_16 pDest_x, br_in
|
|||
// EDX: pDest_x
|
||||
// EBX: pDest_y
|
||||
// ECX: pSource
|
||||
void DRPixelmapRectangleVScaledCopy(br_pixelmap *pDest, br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap *pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_int_16 pWidth, br_int_16 pHeight);
|
||||
void DRPixelmapRectangleVScaledCopy(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap* pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_int_16 pWidth, br_int_16 pHeight);
|
||||
|
||||
// Offset: 23708
|
||||
// Size: 87
|
||||
|
|
@ -411,7 +413,7 @@ void SaveTransient(int pIndex, int pX_coord, int pY_coord);
|
|||
// Offset: 24592
|
||||
// Size: 214
|
||||
// EAX: pGib
|
||||
void DrawCursorGiblet(tCursor_giblet *pGib);
|
||||
void DrawCursorGiblet(tCursor_giblet* pGib);
|
||||
|
||||
// Offset: 24808
|
||||
// Size: 743
|
||||
|
|
@ -460,7 +462,7 @@ void InitDRFonts();
|
|||
// EDX: pLeft
|
||||
// EBX: pTop
|
||||
// ECX: pTop_clip
|
||||
void DrawDropImage(br_pixelmap *pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip, int pOffset);
|
||||
void DrawDropImage(br_pixelmap* pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip, int pOffset);
|
||||
|
||||
// Offset: 28956
|
||||
// Size: 161
|
||||
|
|
@ -468,7 +470,7 @@ void DrawDropImage(br_pixelmap *pImage, int pLeft, int pTop, int pTop_clip, int
|
|||
// EDX: pLeft
|
||||
// EBX: pTop
|
||||
// ECX: pTop_clip
|
||||
void DropInImageFromTop(br_pixelmap *pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip);
|
||||
void DropInImageFromTop(br_pixelmap* pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip);
|
||||
|
||||
// Offset: 29120
|
||||
// Size: 150
|
||||
|
|
@ -476,7 +478,7 @@ void DropInImageFromTop(br_pixelmap *pImage, int pLeft, int pTop, int pTop_clip,
|
|||
// EDX: pLeft
|
||||
// EBX: pTop
|
||||
// ECX: pTop_clip
|
||||
void DropOutImageThruBottom(br_pixelmap *pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip);
|
||||
void DropOutImageThruBottom(br_pixelmap* pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip);
|
||||
|
||||
// Offset: 29272
|
||||
// Size: 152
|
||||
|
|
@ -484,7 +486,7 @@ void DropOutImageThruBottom(br_pixelmap *pImage, int pLeft, int pTop, int pTop_c
|
|||
// EDX: pLeft
|
||||
// EBX: pTop
|
||||
// ECX: pTop_clip
|
||||
void DropInImageFromBottom(br_pixelmap *pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip);
|
||||
void DropInImageFromBottom(br_pixelmap* pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip);
|
||||
|
||||
// Offset: 29424
|
||||
// Size: 161
|
||||
|
|
@ -492,7 +494,7 @@ void DropInImageFromBottom(br_pixelmap *pImage, int pLeft, int pTop, int pTop_cl
|
|||
// EDX: pLeft
|
||||
// EBX: pTop
|
||||
// ECX: pTop_clip
|
||||
void DropOutImageThruTop(br_pixelmap *pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip);
|
||||
void DropOutImageThruTop(br_pixelmap* pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip);
|
||||
|
||||
// Offset: 29588
|
||||
// Size: 262
|
||||
|
|
@ -500,7 +502,7 @@ void DropOutImageThruTop(br_pixelmap *pImage, int pLeft, int pTop, int pTop_clip
|
|||
// EDX: pLeft
|
||||
// EBX: pTop
|
||||
// ECX: pPercentage
|
||||
void DrawTellyLine(br_pixelmap *pImage, int pLeft, int pTop, int pPercentage);
|
||||
void DrawTellyLine(br_pixelmap* pImage, int pLeft, int pTop, int pPercentage);
|
||||
|
||||
// Offset: 29852
|
||||
// Size: 203
|
||||
|
|
@ -508,21 +510,21 @@ void DrawTellyLine(br_pixelmap *pImage, int pLeft, int pTop, int pPercentage);
|
|||
// EDX: pLeft
|
||||
// EBX: pTop
|
||||
// ECX: pPercentage
|
||||
void DrawTellyImage(br_pixelmap *pImage, int pLeft, int pTop, int pPercentage);
|
||||
void DrawTellyImage(br_pixelmap* pImage, int pLeft, int pTop, int pPercentage);
|
||||
|
||||
// Offset: 30056
|
||||
// Size: 194
|
||||
// EAX: pImage
|
||||
// EDX: pLeft
|
||||
// EBX: pTop
|
||||
void TellyInImage(br_pixelmap *pImage, int pLeft, int pTop);
|
||||
void TellyInImage(br_pixelmap* pImage, int pLeft, int pTop);
|
||||
|
||||
// Offset: 30252
|
||||
// Size: 220
|
||||
// EAX: pImage
|
||||
// EDX: pLeft
|
||||
// EBX: pTop
|
||||
void TellyOutImage(br_pixelmap *pImage, int pLeft, int pTop);
|
||||
void TellyOutImage(br_pixelmap* pImage, int pLeft, int pTop);
|
||||
|
||||
// Offset: 30472
|
||||
// Size: 45
|
||||
|
|
@ -543,7 +545,7 @@ void InitShadow();
|
|||
|
||||
// Offset: 31320
|
||||
// Size: 140
|
||||
br_uint_32 SaveShadeTable(br_pixelmap *pTable, void *pArg);
|
||||
br_uint_32 SaveShadeTable(br_pixelmap* pTable, void* pArg);
|
||||
|
||||
// Offset: 31460
|
||||
// Size: 71
|
||||
|
|
@ -571,6 +573,6 @@ int SwitchToLoresMode();
|
|||
// EDX: pSource
|
||||
// EBX: pSource_width
|
||||
// ECX: pSource_height
|
||||
void DRPixelmapDoubledCopy(br_pixelmap *pDestn, br_pixelmap *pSource, int pSource_width, int pSource_height, int pX_offset, int pY_offset);
|
||||
void DRPixelmapDoubledCopy(br_pixelmap* pDestn, br_pixelmap* pSource, int pSource_width, int pSource_height, int pX_offset, int pY_offset);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2,26 +2,26 @@
|
|||
|
||||
#include <time.h>
|
||||
|
||||
#include "pc-dos/dossys.h"
|
||||
#include "common/globvars.h"
|
||||
#include "common/errors.h"
|
||||
#include "common/drmem.h"
|
||||
#include "common/graphics.h"
|
||||
#include "common/depth.h"
|
||||
#include "common/displays.h"
|
||||
#include "common/drdebug.h"
|
||||
#include "common/drmem.h"
|
||||
#include "common/errors.h"
|
||||
#include "common/flicplay.h"
|
||||
#include "common/globvars.h"
|
||||
#include "common/grafdata.h"
|
||||
#include "common/graphics.h"
|
||||
#include "common/loading.h"
|
||||
#include "common/netgame.h"
|
||||
#include "common/replay.h"
|
||||
#include "common/grafdata.h"
|
||||
#include "common/flicplay.h"
|
||||
#include "common/sound.h"
|
||||
#include "common/displays.h"
|
||||
#include "common/oil.h"
|
||||
#include "common/pedestrn.h"
|
||||
#include "common/powerup.h"
|
||||
#include "common/raycast.h"
|
||||
#include "common/depth.h"
|
||||
#include "common/world.h"
|
||||
#include "common/oil.h"
|
||||
#include "common/replay.h"
|
||||
#include "common/skidmark.h"
|
||||
#include "common/pedestrn.h"
|
||||
#include "common/sound.h"
|
||||
#include "common/world.h"
|
||||
#include "pc-dos/dossys.h"
|
||||
|
||||
#include "brender.h"
|
||||
|
||||
|
|
@ -35,7 +35,7 @@ int gRender_indent;
|
|||
int gCredits_per_rank[3];
|
||||
int gInitial_credits[3];
|
||||
int gNet_mode_of_last_game;
|
||||
br_material *gDefault_track_material;
|
||||
br_material* gDefault_track_material;
|
||||
|
||||
// Offset: 0
|
||||
// Size: 115
|
||||
|
|
@ -80,7 +80,7 @@ void InstallFindFailedHooks() {
|
|||
// Offset: 1992
|
||||
// Size: 158
|
||||
void AllocateStandardLamp() {
|
||||
br_actor *lamp;
|
||||
br_actor* lamp;
|
||||
int i;
|
||||
}
|
||||
|
||||
|
|
@ -123,82 +123,83 @@ void Init2DStuff() {
|
|||
// Size: 671
|
||||
// EAX: pArgc
|
||||
// EDX: pArgv
|
||||
void InitialiseApplication(int pArgc, char **pArgv) {
|
||||
gProgram_state.sausage_eater_mode = gSausage_override;
|
||||
DrDebugLog(gSausage_override, *pArgv);
|
||||
if (gAustere_override || PDDoWeLeadAnAustereExistance() != 0) {
|
||||
gAusterity_mode = 1;
|
||||
}
|
||||
|
||||
srand(time(NULL));
|
||||
BrV1dbBeginWrapper_Float();
|
||||
CreateStainlessClasses();
|
||||
InitWobbleStuff();
|
||||
LoadGeneralParameters();
|
||||
DefaultNetName();
|
||||
strcpy(gProgram_state.player_name[0], "MAX DAMAGE");
|
||||
strcpy(gProgram_state.player_name[1], "DIE ANNA");
|
||||
|
||||
RestoreOptions();
|
||||
LoadKeyMapping();
|
||||
if (!PDInitScreenVars(pArgc, pArgv)) {
|
||||
FatalError(0);
|
||||
}
|
||||
CalcGrafDataIndex();
|
||||
InitializeBRenderEnvironment();
|
||||
InitDRFonts();
|
||||
InitBRFonts();
|
||||
LoadMiscStrings();
|
||||
LoadInRegistees();
|
||||
FinishLoadingGeneral();
|
||||
InitializePalettes();
|
||||
AustereWarning();
|
||||
LoadInterfaceStrings();
|
||||
InitializeActionReplay();
|
||||
FlicPaletteAllocate();
|
||||
InitInterfaceLoadState();
|
||||
InitTransientBitmaps();
|
||||
InitSound();
|
||||
InitHeadups();
|
||||
gDefault_track_material = BrMaterialAllocate("gDefault_track_material");
|
||||
//TODO:
|
||||
//BYTE2(gDefault_track_material->map_transform.m[2][1]) = -29;
|
||||
//BYTE3(gDefault_track_material->map_transform.m[2][1]) = 1;
|
||||
BrMaterialAdd(gDefault_track_material);
|
||||
InitShadow();
|
||||
InitFlics();
|
||||
AllocateStandardLamp();
|
||||
InitAmbience();
|
||||
LoadOpponents();
|
||||
LoadPowerups();
|
||||
LoadRaces(gRace_list, &gNumber_of_races, -1);
|
||||
RevertPalette();
|
||||
InitRayCasting();
|
||||
InitDepthEffects();
|
||||
InitialiseStorageSpace(&gOur_car_storage_space, 40, 2, 40, 30);
|
||||
InitialiseStorageSpace(&gTheir_cars_storage_space, 300, 50, 500, 200);
|
||||
InitialiseStorageSpace(&gPedestrians_storage_space, 500, 10, 0, 0);
|
||||
InitialiseStorageSpace(&gTrack_storage_space, 400, 50, 400, 1000);
|
||||
InitOilSpills();
|
||||
if (gAustere_time) {
|
||||
while (PDGetTotalTime() - gAustere_time < 2000) {
|
||||
}
|
||||
}
|
||||
ClearEntireScreen();
|
||||
InitSkids();
|
||||
InitPeds();
|
||||
gProgram_state.cars_available[42] = 0;
|
||||
gCD_is_in_drive = TestForOriginalCarmaCDinDrive();
|
||||
SwitchToLoresMode();
|
||||
DrDebugLog(0, "AFTER APPLICATION INITIALISATION");
|
||||
void InitialiseApplication(int pArgc, char** pArgv) {
|
||||
gProgram_state.sausage_eater_mode = gSausage_override;
|
||||
DrDebugLog(gSausage_override, *pArgv);
|
||||
if (gAustere_override || PDDoWeLeadAnAustereExistance() != 0) {
|
||||
gAusterity_mode = 1;
|
||||
}
|
||||
|
||||
srand(time(NULL));
|
||||
BrV1dbBeginWrapper_Float();
|
||||
CreateStainlessClasses();
|
||||
InitWobbleStuff();
|
||||
LoadGeneralParameters();
|
||||
DefaultNetName();
|
||||
strcpy(gProgram_state.player_name[0], "MAX DAMAGE");
|
||||
strcpy(gProgram_state.player_name[1], "DIE ANNA");
|
||||
|
||||
RestoreOptions();
|
||||
LoadKeyMapping();
|
||||
if (!PDInitScreenVars(pArgc, pArgv)) {
|
||||
FatalError(0);
|
||||
}
|
||||
CalcGrafDataIndex();
|
||||
InitializeBRenderEnvironment();
|
||||
InitDRFonts();
|
||||
InitBRFonts();
|
||||
LoadMiscStrings();
|
||||
LoadInRegistees();
|
||||
FinishLoadingGeneral();
|
||||
InitializePalettes();
|
||||
AustereWarning();
|
||||
LoadInterfaceStrings();
|
||||
InitializeActionReplay();
|
||||
FlicPaletteAllocate();
|
||||
InitInterfaceLoadState();
|
||||
InitTransientBitmaps();
|
||||
InitSound();
|
||||
InitHeadups();
|
||||
gDefault_track_material = BrMaterialAllocate("gDefault_track_material");
|
||||
//TODO:
|
||||
//BYTE2(gDefault_track_material->map_transform.m[2][1]) = -29;
|
||||
//BYTE3(gDefault_track_material->map_transform.m[2][1]) = 1;
|
||||
BrMaterialAdd(gDefault_track_material);
|
||||
InitShadow();
|
||||
InitFlics();
|
||||
AllocateStandardLamp();
|
||||
InitAmbience();
|
||||
LoadOpponents();
|
||||
LoadPowerups();
|
||||
LoadRaces(gRace_list, &gNumber_of_races, -1);
|
||||
RevertPalette();
|
||||
InitRayCasting();
|
||||
InitDepthEffects();
|
||||
InitialiseStorageSpace(&gOur_car_storage_space, 40, 2, 40, 30);
|
||||
InitialiseStorageSpace(&gTheir_cars_storage_space, 300, 50, 500, 200);
|
||||
InitialiseStorageSpace(&gPedestrians_storage_space, 500, 10, 0, 0);
|
||||
InitialiseStorageSpace(&gTrack_storage_space, 400, 50, 400, 1000);
|
||||
InitOilSpills();
|
||||
if (gAustere_time) {
|
||||
while (PDGetTotalTime() - gAustere_time < 2000) {
|
||||
}
|
||||
}
|
||||
ClearEntireScreen();
|
||||
InitSkids();
|
||||
InitPeds();
|
||||
gProgram_state.cars_available[42] = 0;
|
||||
gCD_is_in_drive = TestForOriginalCarmaCDinDrive();
|
||||
SwitchToLoresMode();
|
||||
DrDebugLog(0, "AFTER APPLICATION INITIALISATION");
|
||||
}
|
||||
|
||||
// Offset: 6004
|
||||
// Size: 64
|
||||
// EAX: pArgc
|
||||
// EDX: pArgv
|
||||
void InitialiseDeathRace(int pArgc, char **pArgv) {
|
||||
void InitialiseDeathRace(int pArgc, char** pArgv) {
|
||||
PDInitialiseSystem();
|
||||
|
||||
InitialiseApplication(pArgc, pArgv);
|
||||
//dword_112DF8 = 1; // never checked by game
|
||||
}
|
||||
|
|
@ -228,7 +229,7 @@ void DisposeTrack() {
|
|||
// Offset: 6788
|
||||
// Size: 97
|
||||
// EAX: pMaterial
|
||||
void CopyMaterialColourFromIndex(br_material *pMaterial) {
|
||||
void CopyMaterialColourFromIndex(br_material* pMaterial) {
|
||||
}
|
||||
|
||||
// Offset: 6888
|
||||
|
|
@ -251,4 +252,3 @@ int GetScreenSize() {
|
|||
// EAX: pNew_size
|
||||
void SetScreenSize(int pNew_size) {
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,12 @@
|
|||
#ifndef _INIT_H_
|
||||
#define _INIT_H_
|
||||
|
||||
#include "dr_types.h"
|
||||
#include "br_types.h"
|
||||
#include "dr_types.h"
|
||||
|
||||
extern int gCredits_per_rank[3];
|
||||
extern int gInitial_credits[3];
|
||||
extern int gInitial_rank;
|
||||
|
||||
// Offset: 0
|
||||
// Size: 115
|
||||
|
|
@ -64,13 +68,13 @@ void Init2DStuff();
|
|||
// Size: 671
|
||||
// EAX: pArgc
|
||||
// EDX: pArgv
|
||||
void InitialiseApplication(int pArgc, char **pArgv);
|
||||
void InitialiseApplication(int pArgc, char** pArgv);
|
||||
|
||||
// Offset: 6004
|
||||
// Size: 64
|
||||
// EAX: pArgc
|
||||
// EDX: pArgv
|
||||
void InitialiseDeathRace(int pArgc, char **pArgv);
|
||||
void InitialiseDeathRace(int pArgc, char** pArgv);
|
||||
|
||||
// Offset: 6068
|
||||
// Size: 427
|
||||
|
|
@ -92,7 +96,7 @@ void DisposeTrack();
|
|||
// Offset: 6788
|
||||
// Size: 97
|
||||
// EAX: pMaterial
|
||||
void CopyMaterialColourFromIndex(br_material *pMaterial);
|
||||
void CopyMaterialColourFromIndex(br_material* pMaterial);
|
||||
|
||||
// Offset: 6888
|
||||
// Size: 1230
|
||||
|
|
|
|||
|
|
@ -1,9 +1,24 @@
|
|||
#include "loading.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "displays.h"
|
||||
#include "errors.h"
|
||||
#include "globvars.h"
|
||||
#include "globvrkm.h"
|
||||
#include "graphics.h"
|
||||
#include "init.h"
|
||||
#include "newgame.h"
|
||||
#include "opponent.h"
|
||||
#include "pc-dos/dossys.h"
|
||||
#include "pedestrn.h"
|
||||
#include "sound.h"
|
||||
#include "utility.h"
|
||||
#include "world.h"
|
||||
|
||||
#define HITHER_MULTIPLIER 2.0f
|
||||
#define AMBIENT_MULTIPLIER 0.0099999998f
|
||||
|
||||
char* gWheel_actor_names[6];
|
||||
int gFunk_groove_flags[30];
|
||||
|
|
@ -13,7 +28,7 @@ char* gDrivable_car_names[6];
|
|||
char* gYour_car_names[2][6];
|
||||
char gDef_def_water_screen_name[32];
|
||||
tHeadup_info gHeadup_image_info[31];
|
||||
int gAllow_open_to_fail;
|
||||
int gAllow_open_to_fail = 1;
|
||||
br_material* gDestn_screen_mat;
|
||||
br_material* gSource_screen_mat;
|
||||
char* gRaces_file_names[9];
|
||||
|
|
@ -182,6 +197,146 @@ void LoadGeneralParameters() {
|
|||
int temp;
|
||||
char s[256];
|
||||
char* str;
|
||||
|
||||
PathCat(the_path, gApplication_path, "ACTORS");
|
||||
PathCat(the_path, the_path, "PROG.ACT");
|
||||
f = fopen(the_path, "rb");
|
||||
if (f) {
|
||||
fgets(s, 255, f);
|
||||
fclose(f);
|
||||
for (i = 0; i < strlen(gDecode_string); i++) {
|
||||
gDecode_string[i] -= 50;
|
||||
}
|
||||
|
||||
// trim trailing CRLF etc
|
||||
while (s[0] != '\0' && s[strlen(s) - 1] < 0x20) {
|
||||
s[strlen(s) - 1] = 0;
|
||||
}
|
||||
|
||||
if (strcmp(s, gDecode_string) == 0) {
|
||||
gDecode_thing = 0;
|
||||
printf("Expecting decrypted text files!\n");
|
||||
}
|
||||
|
||||
for (i = 0; i < strlen(gDecode_string); i++) {
|
||||
gDecode_string[i] -= 50;
|
||||
}
|
||||
}
|
||||
PathCat(the_path, gApplication_path, "GENERAL.TXT");
|
||||
f = DRfopen(the_path, "rt");
|
||||
if (!f) {
|
||||
FatalError(8);
|
||||
}
|
||||
gCamera_hither = GetAFloat(f) * HITHER_MULTIPLIER;
|
||||
gCamera_yon = GetAFloat(f);
|
||||
gCamera_angle = GetAFloat(f);
|
||||
gAmbient_adjustment = GetAFloat(f) * AMBIENT_MULTIPLIER;
|
||||
gDim_amount = GetAnInt(f);
|
||||
gInitial_rank = GetAnInt(f);
|
||||
GetThreeInts(f, &gInitial_credits[0], &gInitial_credits[1], &gInitial_credits[2]);
|
||||
GetThreeInts(f, &gCredits_per_rank[0], &gCredits_per_rank[1], &gCredits_per_rank[2]);
|
||||
gCar_crush_min_fold = GetAFloat(f);
|
||||
gCar_crush_max_fold = GetAFloat(f);
|
||||
gCar_crush_wibble = GetAFloat(f);
|
||||
gCar_crush_limit_deviant = GetAFloat(f);
|
||||
gCar_crush_split_chance = GetAFloat(f);
|
||||
gCar_crush_softness = GetAFloat(f);
|
||||
GetThreeFloats(f, &gRepair_cost[0], &gRepair_cost[1], &gRepair_cost[2]);
|
||||
GetThreeFloats(f, &gRecovery_cost[0], &gRecovery_cost[1], &gRecovery_cost[2]);
|
||||
GetThreeInts(f, &gPed_time_value[0], &gPed_time_value[1], &gPed_time_value[2]);
|
||||
if (gProgram_state.sausage_eater_mode) {
|
||||
for (i = 0; i < 7; i++) {
|
||||
GetALineAndDontArgue(f, s);
|
||||
}
|
||||
|
||||
GetThreeFloats(f, gCar_time_value, &gCar_time_value[1], &gCar_time_value[2]);
|
||||
GetThreeFloats(f, gCar_cred_value, &gCar_cred_value[1], &gCar_cred_value[2]);
|
||||
GetThreeInts(f, gWasted_time, &gWasted_time[1], &gWasted_time[2]);
|
||||
GetThreeInts(f, gWasted_creds, &gWasted_creds[1], &gWasted_creds[2]);
|
||||
GetThreeInts(f, gRoll_over_time, &gRoll_over_time[1], &gRoll_over_time[2]);
|
||||
GetThreeInts(f, gRoll_over_creds, &gRoll_over_creds[1], &gRoll_over_creds[2]);
|
||||
GetThreeInts(f, gCheck_point_cash, &gCheck_point_cash[1], &gCheck_point_cash[2]);
|
||||
} else {
|
||||
GetThreeFloats(f, gCar_time_value, &gCar_time_value[1], &gCar_time_value[2]);
|
||||
GetThreeFloats(f, gCar_cred_value, &gCar_cred_value[1], &gCar_cred_value[2]);
|
||||
GetThreeInts(f, gWasted_time, &gWasted_time[1], &gWasted_time[2]);
|
||||
GetThreeInts(f, gWasted_creds, &gWasted_creds[1], &gWasted_creds[2]);
|
||||
GetThreeInts(f, gRoll_over_time, &gRoll_over_time[1], &gRoll_over_time[2]);
|
||||
GetThreeInts(f, gRoll_over_creds, &gRoll_over_creds[1], &gRoll_over_creds[2]);
|
||||
GetThreeInts(f, gCheck_point_cash, &gCheck_point_cash[1], &gCheck_point_cash[2]);
|
||||
for (i = 0; i < 7; i++) {
|
||||
GetALineAndDontArgue(f, s);
|
||||
}
|
||||
}
|
||||
GetThreeInts(f, gJump_start_fine, &gJump_start_fine[1], &gJump_start_fine[2]);
|
||||
GetThreeInts(f, gPoints_per_second, &gPoints_per_second[1], &gPoints_per_second[2]);
|
||||
GetThreeInts(f, gCunning_stunt_bonus, &gCunning_stunt_bonus[1], &gCunning_stunt_bonus[2]);
|
||||
GetAString(f, gBasic_car_names[0]);
|
||||
GetAString(f, gBasic_car_names[1]);
|
||||
gKnobbled_frame_period = GetAnInt(f);
|
||||
if (gKnobbled_frame_period) {
|
||||
gKnobbled_frame_period = 1000 / gKnobbled_frame_period;
|
||||
}
|
||||
gOpponent_nastyness_frigger = GetAFloat(f);
|
||||
ParseSpecialVolume(f, &gDefault_default_water_spec_vol, gDef_def_water_screen_name);
|
||||
GetALineAndDontArgue(f, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
for (i = 0; i < 5; i++) {
|
||||
sscanf(str, "%d", &gInitial_net_credits[i]);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
}
|
||||
|
||||
gTag_start_time = 1000 * GetAnInt(f);
|
||||
gFox_start_time = 1000 * GetAnInt(f);
|
||||
|
||||
GetALineAndDontArgue(f, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
for (i = 0; i < 7; i++) {
|
||||
sscanf(str, "%f", &gNet_repair_cost[i]);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
}
|
||||
GetALineAndDontArgue(f, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
for (i = 0; i < 7; i++) {
|
||||
sscanf(str, "%f", &gNet_recovery_cost[i]);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
}
|
||||
GetALineAndDontArgue(f, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
for (i = 0; i < 7; i++) {
|
||||
sscanf(str, "%f", &gNet_softness[i]);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
}
|
||||
GetALineAndDontArgue(f, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
for (i = 0; i < 7; i++) {
|
||||
sscanf(str, "%f", &gNet_offensive[i]);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
}
|
||||
GetALineAndDontArgue(f, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
for (i = 0; i < 7; i++) {
|
||||
sscanf(str, "%d", &gNet_target[i]);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
}
|
||||
|
||||
gMin_respawn_time = 1000 * GetAnInt(f);
|
||||
gRespawn_variance = 1000 * GetAnInt(f);
|
||||
gDemo_rank = GetAnInt(f);
|
||||
gDemo_armour = GetAnInt(f);
|
||||
gDemo_power = GetAnInt(f);
|
||||
gDemo_offensive = GetAnInt(f);
|
||||
for (i = 0; i < 5; i++) {
|
||||
gDemo_opponents[i] = GetAnInt(f);
|
||||
}
|
||||
|
||||
gGravity_multiplier = GetAFloat(f);
|
||||
gZombie_factor = GetAFloat(f);
|
||||
gCut_delay_1 = GetAFloat(f);
|
||||
gCut_delay_2 = GetAFloat(f);
|
||||
gCut_delay_3 = GetAFloat(f);
|
||||
gCut_delay_4 = 1.0f;
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
// Offset: 3472
|
||||
|
|
@ -822,6 +977,11 @@ int GetAnInt(FILE* pF) {
|
|||
char s[256];
|
||||
char* str;
|
||||
int result;
|
||||
|
||||
GetALineAndDontArgue(pF, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
sscanf(str, "%d", &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
// Offset: 33828
|
||||
|
|
@ -831,6 +991,11 @@ float GetAFloat(FILE* pF) {
|
|||
char s[256];
|
||||
char* str;
|
||||
float result;
|
||||
|
||||
GetALineAndDontArgue(pF, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
sscanf(str, "%f", &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
// Offset: 33932
|
||||
|
|
@ -850,6 +1015,12 @@ float GetAFloatPercent(FILE* pF) {
|
|||
void GetPairOfFloats(FILE* pF, float* pF1, float* pF2) {
|
||||
char s[256];
|
||||
char* str;
|
||||
|
||||
GetALineAndDontArgue(pF, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
sscanf(str, "%f", pF1);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
sscanf(str, "%f", pF2);
|
||||
}
|
||||
|
||||
// Offset: 34172
|
||||
|
|
@ -861,6 +1032,14 @@ void GetPairOfFloats(FILE* pF, float* pF1, float* pF2) {
|
|||
void GetThreeFloats(FILE* pF, float* pF1, float* pF2, float* pF3) {
|
||||
char s[256];
|
||||
char* str;
|
||||
|
||||
GetALineAndDontArgue(pF, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
sscanf(str, "%f", pF1);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
sscanf(str, "%f", pF2);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
sscanf(str, "%f", pF3);
|
||||
}
|
||||
|
||||
// Offset: 34344
|
||||
|
|
@ -871,6 +1050,12 @@ void GetThreeFloats(FILE* pF, float* pF1, float* pF2, float* pF3) {
|
|||
void GetPairOfInts(FILE* pF, int* pF1, int* pF2) {
|
||||
char s[256];
|
||||
char* str;
|
||||
|
||||
GetALineAndDontArgue(pF, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
sscanf(str, "%d", pF1);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
sscanf(str, "%d", pF2);
|
||||
}
|
||||
|
||||
// Offset: 34476
|
||||
|
|
@ -882,6 +1067,14 @@ void GetPairOfInts(FILE* pF, int* pF1, int* pF2) {
|
|||
void GetThreeInts(FILE* pF, int* pF1, int* pF2, int* pF3) {
|
||||
char s[256];
|
||||
char* str;
|
||||
|
||||
GetALineAndDontArgue(pF, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
sscanf(str, "%d", pF1);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
sscanf(str, "%d", pF2);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
sscanf(str, "%d", pF3);
|
||||
}
|
||||
|
||||
// Offset: 34648
|
||||
|
|
@ -904,12 +1097,23 @@ void GetThreeIntsAndAString(FILE* pF, int* pF1, int* pF2, int* pF3, char* pS) {
|
|||
void GetFourInts(FILE* pF, int* pF1, int* pF2, int* pF3, int* pF4) {
|
||||
char s[256];
|
||||
char* str;
|
||||
|
||||
GetALineAndDontArgue(pF, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
sscanf(str, "%d", pF1);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
sscanf(str, "%d", pF2);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
sscanf(str, "%d", pF3);
|
||||
str = strtok(NULL, "\t ,/");
|
||||
sscanf(str, "%d", pF4);
|
||||
}
|
||||
|
||||
// Offset: 35056
|
||||
// Size: 51
|
||||
// EAX: pF
|
||||
br_scalar GetAScalar(FILE* pF) {
|
||||
return GetAFloat(pF);
|
||||
}
|
||||
|
||||
// Offset: 35108
|
||||
|
|
@ -1000,6 +1204,10 @@ void GetThreeFloatPercents(FILE* pF, float* pF1, float* pF2, float* pF3) {
|
|||
void GetAString(FILE* pF, char* pString) {
|
||||
char s[256];
|
||||
char* str;
|
||||
|
||||
GetALineAndDontArgue(pF, s);
|
||||
str = strtok(s, "\t ,/");
|
||||
strcpy(pString, str);
|
||||
}
|
||||
|
||||
// Offset: 36396
|
||||
|
|
@ -1048,8 +1256,89 @@ FILE* OldDRfopen(char* pFilename, char* pMode) {
|
|||
tPath_name CD_dir;
|
||||
tPath_name path_file;
|
||||
tPath_name source_check;
|
||||
static int source_exists;
|
||||
static int source_exists = 1;
|
||||
int len;
|
||||
int c;
|
||||
|
||||
fp = fopen(pFilename, pMode);
|
||||
|
||||
if (fp) {
|
||||
len = strlen(pFilename) + 1;
|
||||
if (gDecode_thing != 0) {
|
||||
if (strcmp(&pFilename[len - 4], ".TXT") != 0
|
||||
&& strcmp(&pFilename[len - 12], "DKEYMAP0.TXT") != 0
|
||||
&& strcmp(&pFilename[len - 12], "DKEYMAP1.TXT") != 0
|
||||
&& strcmp(&pFilename[len - 12], "DKEYMAP2.TXT") != 0
|
||||
&& strcmp(&pFilename[len - 12], "DKEYMAP3.TXT") != 0
|
||||
&& strcmp(&pFilename[len - 12], "KEYMAP_0.TXT") != 0
|
||||
&& strcmp(&pFilename[len - 12], "KEYMAP_1.TXT") != 0
|
||||
&& strcmp(&pFilename[len - 12], "KEYMAP_2.TXT") != 0
|
||||
&& strcmp(&pFilename[len - 12], "KEYMAP_3.TXT") != 0
|
||||
&& strcmp(&pFilename[len - 11], "OPTIONS.TXT") != 0
|
||||
&& strcmp(&pFilename[len - 12], "KEYNAMES.TXT") != 0
|
||||
&& strcmp(&pFilename[len - 10], "KEYMAP.TXT") != 0
|
||||
&& strcmp(&pFilename[len - 9], "PATHS.TXT") != 0
|
||||
&& strcmp(&pFilename[len - 11], "PRATCAM.TXT") != 0) {
|
||||
|
||||
c = fgetc(fp);
|
||||
if (c != gDecode_thing) {
|
||||
fclose(fp);
|
||||
return NULL;
|
||||
}
|
||||
ungetc(c, fp);
|
||||
return fp;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (gCD_fully_installed) {
|
||||
return fp;
|
||||
}
|
||||
if (source_exists == 1) {
|
||||
strcpy(path_file, "DATA");
|
||||
strcat(path_file, gDir_separator);
|
||||
strcat(path_file, "PATHS.TXT");
|
||||
|
||||
if (!PDCheckDriveExists(path_file)) {
|
||||
source_exists = 0;
|
||||
return NULL;
|
||||
}
|
||||
test1 = fopen(path_file, "rt");
|
||||
if (!test1) {
|
||||
source_exists = 0;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
GetALineAndDontArgue(test1, source_check);
|
||||
strcat(source_check, gDir_separator);
|
||||
strcat(source_check, "DATA");
|
||||
strcat(source_check, gDir_separator);
|
||||
strcat(source_check, "GENERAL.TXT");
|
||||
|
||||
fclose(test1);
|
||||
if (PDCheckDriveExists(source_check)) {
|
||||
source_exists++;
|
||||
} else {
|
||||
PDFatalError("Carmageddon CD not in drive.");
|
||||
if (gCD_fully_installed) {
|
||||
source_exists = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!source_exists) {
|
||||
return fp;
|
||||
}
|
||||
|
||||
data_dir = strstr(pFilename, "DATA");
|
||||
if (data_dir != NULL) {
|
||||
if (GetCDPathFromPathsTxtFile(CD_dir)) {
|
||||
strcat(CD_dir, gDir_separator);
|
||||
strcat(CD_dir, data_dir);
|
||||
if (PDCheckDriveExists(CD_dir)) {
|
||||
fp = fopen(CD_dir, pMode);
|
||||
}
|
||||
}
|
||||
}
|
||||
return fp;
|
||||
}
|
||||
|
||||
// Offset: 38332
|
||||
|
|
@ -1070,6 +1359,20 @@ FILE* DRfopen(char* pFilename, char* pMode) {
|
|||
FILE* result;
|
||||
tPath_name CD_dir;
|
||||
char msg[336];
|
||||
|
||||
result = OldDRfopen(pFilename, pMode);
|
||||
if (!result && !gAllow_open_to_fail) {
|
||||
if (GetCDPathFromPathsTxtFile(CD_dir) && !PDCheckDriveExists(CD_dir)) {
|
||||
if (gMisc_strings[0]) {
|
||||
PDFatalError(GetMiscString(243));
|
||||
} else {
|
||||
PDFatalError("Could not find the Carmageddon CD");
|
||||
}
|
||||
sprintf(msg, "DRfopen( \"%s\", \"%s\" ) failed", pFilename, pMode);
|
||||
PDFatalError(msg);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// Offset: 38604
|
||||
|
|
@ -1083,6 +1386,7 @@ int GetCDPathFromPathsTxtFile(char* pPath_name) {
|
|||
|
||||
if (!got_it_already) {
|
||||
sprintf(paths_txt, "%s%s%s", gApplication_path, gDir_separator, "PATHS.TXT");
|
||||
printf("%s\n", paths_txt);
|
||||
paths_txt_fp = fopen(paths_txt, "rt");
|
||||
if (!paths_txt_fp) {
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -1,23 +1,25 @@
|
|||
#include "newgame.h"
|
||||
|
||||
char *gBasic_car_names[2];
|
||||
char x[] = "xxxxxxxx.TXT";
|
||||
char y[] = "yyyyyyyy.TXT";
|
||||
char* gBasic_car_names[2] = { x, y };
|
||||
tNet_game_options gNet_settings[8];
|
||||
tRadio_bastards gRadio_bastards[11];
|
||||
tJoinable_game gGames_to_join[6];
|
||||
tNet_game_options *gOptions;
|
||||
tNet_game_options* gOptions;
|
||||
int gNet_target[7];
|
||||
int gLast_graph_sel;
|
||||
tInterface_spec *gThe_interface_spec;
|
||||
tInterface_spec* gThe_interface_spec;
|
||||
tNet_sequence_type gNet_race_sequence;
|
||||
tNet_game_type gLast_game_type;
|
||||
int gCurrent_net_game_count;
|
||||
tU32 gAnne_flic_data_length;
|
||||
int gShifted_default_yet;
|
||||
int gNet_storage_allocated;
|
||||
tU8 *gFrank_flic_data;
|
||||
char *gNet_name;
|
||||
tU8* gFrank_flic_data;
|
||||
char* gNet_name;
|
||||
tU32 gFrank_flic_data_length;
|
||||
tU8 *gAnne_flic_data;
|
||||
tU8* gAnne_flic_data;
|
||||
int gLast_net_choose_box;
|
||||
int gCurrent_game_selection;
|
||||
int gRace_index;
|
||||
|
|
@ -44,7 +46,7 @@ void FrankAnneStart2() {
|
|||
// EDX: pCurrent_choice
|
||||
// EBX: pString
|
||||
// ECX: pMax_length
|
||||
void GetPlayerName(int pStarting_to_type, int pCurrent_choice, char *pString, int *pMax_length) {
|
||||
void GetPlayerName(int pStarting_to_type, int pCurrent_choice, char* pString, int* pMax_length) {
|
||||
}
|
||||
|
||||
// Offset: 688
|
||||
|
|
@ -94,7 +96,7 @@ int DoOnePlayerStart() {
|
|||
// Size: 263
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NewNetGameUp(int *pCurrent_choice, int *pCurrent_mode) {
|
||||
int NewNetGameUp(int* pCurrent_choice, int* pCurrent_mode) {
|
||||
int new_sel;
|
||||
int i;
|
||||
}
|
||||
|
|
@ -103,7 +105,7 @@ int NewNetGameUp(int *pCurrent_choice, int *pCurrent_mode) {
|
|||
// Size: 263
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NewNetGameDown(int *pCurrent_choice, int *pCurrent_mode) {
|
||||
int NewNetGameDown(int* pCurrent_choice, int* pCurrent_mode) {
|
||||
int new_sel;
|
||||
int i;
|
||||
}
|
||||
|
|
@ -120,7 +122,7 @@ void DisposeJoinableGame(int pIndex) {
|
|||
// EDX: pY_index
|
||||
// EBX: pFont_index
|
||||
// ECX: pText
|
||||
void DrawAnItem(int pX, int pY_index, int pFont_index, char *pText) {
|
||||
void DrawAnItem(int pX, int pY_index, int pFont_index, char* pText) {
|
||||
}
|
||||
|
||||
// Offset: 2292
|
||||
|
|
@ -141,8 +143,8 @@ void DrawGames(int pCurrent_choice, int pCurrent_mode) {
|
|||
int x_coord;
|
||||
int y_coord;
|
||||
char s[256];
|
||||
char *s2;
|
||||
char *s3;
|
||||
char* s2;
|
||||
char* s3;
|
||||
}
|
||||
|
||||
// Offset: 4236
|
||||
|
|
@ -160,7 +162,7 @@ void DisposeJoinList(int pExemption) {
|
|||
// Offset: 4420
|
||||
// Size: 227
|
||||
// EAX: pGame
|
||||
void AddToJoinList(tNet_game_details *pGame) {
|
||||
void AddToJoinList(tNet_game_details* pGame) {
|
||||
int i;
|
||||
int slot_to_use;
|
||||
tU32 this_game_ID;
|
||||
|
|
@ -182,7 +184,7 @@ void NewNetStart2() {
|
|||
// EDX: pCurrent_choice
|
||||
// EBX: pString
|
||||
// ECX: pMax_length
|
||||
void NewNetGetName(int pStarting_to_type, int pCurrent_choice, char *pString, int *pMax_length) {
|
||||
void NewNetGetName(int pStarting_to_type, int pCurrent_choice, char* pString, int* pMax_length) {
|
||||
}
|
||||
|
||||
// Offset: 4888
|
||||
|
|
@ -198,13 +200,13 @@ int NewNetDone(int pCurrent_choice, int pCurrent_mode, int pGo_ahead, int pEscap
|
|||
// Size: 72
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NewNetGoAhead(int *pCurrent_choice, int *pCurrent_mode) {
|
||||
int NewNetGoAhead(int* pCurrent_choice, int* pCurrent_mode) {
|
||||
}
|
||||
|
||||
// Offset: 5032
|
||||
// Size: 287
|
||||
// EAX: pGame_to_join
|
||||
tJoin_or_host_result JoinOrHostGame(tNet_game_details **pGame_to_join) {
|
||||
tJoin_or_host_result JoinOrHostGame(tNet_game_details** pGame_to_join) {
|
||||
static tFlicette flicker_on[2];
|
||||
static tFlicette flicker_off[2];
|
||||
static tFlicette push[2];
|
||||
|
|
@ -217,13 +219,13 @@ tJoin_or_host_result JoinOrHostGame(tNet_game_details **pGame_to_join) {
|
|||
// Offset: 5320
|
||||
// Size: 223
|
||||
// EAX: pGame_options
|
||||
void GetNetOptions(tNet_game_options *pGame_options) {
|
||||
void GetNetOptions(tNet_game_options* pGame_options) {
|
||||
}
|
||||
|
||||
// Offset: 5544
|
||||
// Size: 234
|
||||
// EAX: pGame_options
|
||||
void SetNetOptions(tNet_game_options *pGame_options) {
|
||||
void SetNetOptions(tNet_game_options* pGame_options) {
|
||||
}
|
||||
|
||||
// Offset: 5780
|
||||
|
|
@ -301,7 +303,7 @@ void NetCheckboxChanged(int pIndex) {
|
|||
// Size: 153
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetOptLeft(int *pCurrent_choice, int *pCurrent_mode) {
|
||||
int NetOptLeft(int* pCurrent_choice, int* pCurrent_mode) {
|
||||
int new_value;
|
||||
}
|
||||
|
||||
|
|
@ -309,7 +311,7 @@ int NetOptLeft(int *pCurrent_choice, int *pCurrent_mode) {
|
|||
// Size: 157
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetOptRight(int *pCurrent_choice, int *pCurrent_mode) {
|
||||
int NetOptRight(int* pCurrent_choice, int* pCurrent_mode) {
|
||||
int new_value;
|
||||
}
|
||||
|
||||
|
|
@ -317,14 +319,14 @@ int NetOptRight(int *pCurrent_choice, int *pCurrent_mode) {
|
|||
// Size: 148
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetOptUp(int *pCurrent_choice, int *pCurrent_mode) {
|
||||
int NetOptUp(int* pCurrent_choice, int* pCurrent_mode) {
|
||||
}
|
||||
|
||||
// Offset: 7300
|
||||
// Size: 148
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetOptDown(int *pCurrent_choice, int *pCurrent_mode) {
|
||||
int NetOptDown(int* pCurrent_choice, int* pCurrent_mode) {
|
||||
}
|
||||
|
||||
// Offset: 7448
|
||||
|
|
@ -333,14 +335,14 @@ int NetOptDown(int *pCurrent_choice, int *pCurrent_mode) {
|
|||
// EDX: pCurrent_mode
|
||||
// EBX: pX_offset
|
||||
// ECX: pY_offset
|
||||
int NetRadioClick(int *pCurrent_choice, int *pCurrent_mode, int pX_offset, int pY_offset) {
|
||||
int NetRadioClick(int* pCurrent_choice, int* pCurrent_mode, int pX_offset, int pY_offset) {
|
||||
int i;
|
||||
}
|
||||
|
||||
// Offset: 7664
|
||||
// Size: 142
|
||||
void RevertToDefaults() {
|
||||
FILE *f;
|
||||
FILE* f;
|
||||
tNet_game_options net_options;
|
||||
int i;
|
||||
}
|
||||
|
|
@ -348,7 +350,7 @@ void RevertToDefaults() {
|
|||
// Offset: 7808
|
||||
// Size: 156
|
||||
void DefaultNetSettings() {
|
||||
FILE *f;
|
||||
FILE* f;
|
||||
int i;
|
||||
}
|
||||
|
||||
|
|
@ -356,7 +358,7 @@ void DefaultNetSettings() {
|
|||
// Size: 98
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetOptGoAhead(int *pCurrent_choice, int *pCurrent_mode) {
|
||||
int NetOptGoAhead(int* pCurrent_choice, int* pCurrent_mode) {
|
||||
}
|
||||
|
||||
// Offset: 8064
|
||||
|
|
@ -388,7 +390,7 @@ void DrawNetOptBox(int pCurrent_choice, int pCurrent_mode) {
|
|||
// Offset: 8448
|
||||
// Size: 111
|
||||
// EAX: pGame_options
|
||||
void DoNetOptions(tNet_game_options *pGame_options) {
|
||||
void DoNetOptions(tNet_game_options* pGame_options) {
|
||||
static tFlicette flicker_on[14];
|
||||
static tFlicette flicker_off[14];
|
||||
static tFlicette push[14];
|
||||
|
|
@ -400,7 +402,7 @@ void DoNetOptions(tNet_game_options *pGame_options) {
|
|||
// Size: 190
|
||||
// EAX: pGame_type
|
||||
// EDX: pGame_options
|
||||
void SetOptions(tNet_game_type pGame_type, tNet_game_options *pGame_options) {
|
||||
void SetOptions(tNet_game_type pGame_type, tNet_game_options* pGame_options) {
|
||||
}
|
||||
|
||||
// Offset: 8992
|
||||
|
|
@ -412,7 +414,7 @@ void DrawNetChooseInitial() {
|
|||
// Size: 250
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetChooseGoAhead(int *pCurrent_choice, int *pCurrent_mode) {
|
||||
int NetChooseGoAhead(int* pCurrent_choice, int* pCurrent_mode) {
|
||||
}
|
||||
|
||||
// Offset: 9288
|
||||
|
|
@ -440,7 +442,7 @@ void EraseAGraphBox(int pIndex) {
|
|||
// EDX: pCurrent_mode
|
||||
void DrawNetChoose(int pCurrent_choice, int pCurrent_mode) {
|
||||
char s[256];
|
||||
tU32 *k;
|
||||
tU32* k;
|
||||
int i;
|
||||
}
|
||||
|
||||
|
|
@ -448,14 +450,14 @@ void DrawNetChoose(int pCurrent_choice, int pCurrent_mode) {
|
|||
// Size: 61
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetChooseLR(int *pCurrent_choice, int *pCurrent_mode) {
|
||||
int NetChooseLR(int* pCurrent_choice, int* pCurrent_mode) {
|
||||
}
|
||||
|
||||
// Offset: 10356
|
||||
// Size: 190
|
||||
// EAX: pGame_type
|
||||
// EDX: pGame_options
|
||||
void SetGameTarget(tNet_game_type *pGame_type, tNet_game_options *pGame_options) {
|
||||
void SetGameTarget(tNet_game_type* pGame_type, tNet_game_options* pGame_options) {
|
||||
}
|
||||
|
||||
// Offset: 10548
|
||||
|
|
@ -463,7 +465,7 @@ void SetGameTarget(tNet_game_type *pGame_type, tNet_game_options *pGame_options)
|
|||
// EAX: pGame_type
|
||||
// EDX: pGame_options
|
||||
// EBX: pRace_index
|
||||
int NetGameChoices(tNet_game_type *pGame_type, tNet_game_options *pGame_options, int *pRace_index) {
|
||||
int NetGameChoices(tNet_game_type* pGame_type, tNet_game_options* pGame_options, int* pRace_index) {
|
||||
static tFlicette flicker_on[11];
|
||||
static tFlicette flicker_off[11];
|
||||
static tFlicette push[11];
|
||||
|
|
@ -477,26 +479,26 @@ int NetGameChoices(tNet_game_type *pGame_type, tNet_game_options *pGame_options,
|
|||
// EAX: pGame_type
|
||||
// EDX: pGame_options
|
||||
// EBX: pRace_index
|
||||
void ReadNetGameChoices(tNet_game_type *pGame_type, tNet_game_options *pGame_options, int *pRace_index) {
|
||||
void ReadNetGameChoices(tNet_game_type* pGame_type, tNet_game_options* pGame_options, int* pRace_index) {
|
||||
}
|
||||
|
||||
// Offset: 11028
|
||||
// Size: 56
|
||||
// EAX: pRank
|
||||
int ChooseStartRace(int *pRank) {
|
||||
int ChooseStartRace(int* pRank) {
|
||||
}
|
||||
|
||||
// Offset: 11084
|
||||
// Size: 63
|
||||
// EAX: pNet_game
|
||||
void SetUpOtherNetThings(tNet_game_details *pNet_game) {
|
||||
void SetUpOtherNetThings(tNet_game_details* pNet_game) {
|
||||
}
|
||||
|
||||
// Offset: 11148
|
||||
// Size: 97
|
||||
// EAX: pNet_game
|
||||
void RequestCarDetails(tNet_game_details *pNet_game) {
|
||||
tNet_message *message;
|
||||
void RequestCarDetails(tNet_game_details* pNet_game) {
|
||||
tNet_message* message;
|
||||
}
|
||||
|
||||
// Offset: 11248
|
||||
|
|
@ -509,13 +511,13 @@ int PickARandomCar() {
|
|||
// Offset: 11432
|
||||
// Size: 54
|
||||
// EAX: pNet_game
|
||||
void PollCarDetails(tNet_game_details *pNet_game) {
|
||||
void PollCarDetails(tNet_game_details* pNet_game) {
|
||||
}
|
||||
|
||||
// Offset: 11488
|
||||
// Size: 278
|
||||
// EAX: pOptions
|
||||
void SetNetAvailability(tNet_game_options *pOptions) {
|
||||
void SetNetAvailability(tNet_game_options* pOptions) {
|
||||
int i;
|
||||
}
|
||||
|
||||
|
|
@ -525,7 +527,7 @@ void SetNetAvailability(tNet_game_options *pOptions) {
|
|||
// EDX: pOptions
|
||||
// EBX: pCar_index
|
||||
// ECX: pIm_the_host_so_fuck_off
|
||||
int ChooseNetCar(tNet_game_details *pNet_game, tNet_game_options *pOptions, int *pCar_index, int pIm_the_host_so_fuck_off) {
|
||||
int ChooseNetCar(tNet_game_details* pNet_game, tNet_game_options* pOptions, int* pCar_index, int pIm_the_host_so_fuck_off) {
|
||||
tS32 start_time;
|
||||
int i;
|
||||
int result;
|
||||
|
|
@ -546,12 +548,11 @@ void DisposeNetStorageSpace() {
|
|||
// Offset: 12344
|
||||
// Size: 793
|
||||
int DoMultiPlayerStart() {
|
||||
tNet_game_details *game_to_join;
|
||||
tNet_game_details* game_to_join;
|
||||
char s[256];
|
||||
char *s2;
|
||||
char* s2;
|
||||
tNet_game_type new_game_type;
|
||||
tNet_game_options new_game_options;
|
||||
int start_rank;
|
||||
int car_index;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,31 @@
|
|||
#ifndef _NEWGAME_H_
|
||||
#define _NEWGAME_H_
|
||||
|
||||
#include "dr_types.h"
|
||||
#include "br_types.h"
|
||||
#include "dr_types.h"
|
||||
|
||||
extern char* gBasic_car_names[2];
|
||||
extern tNet_game_options gNet_settings[8];
|
||||
extern tRadio_bastards gRadio_bastards[11];
|
||||
extern tJoinable_game gGames_to_join[6];
|
||||
extern tNet_game_options* gOptions;
|
||||
extern int gNet_target[7];
|
||||
extern int gLast_graph_sel;
|
||||
extern tInterface_spec* gThe_interface_spec;
|
||||
extern tNet_sequence_type gNet_race_sequence;
|
||||
extern tNet_game_type gLast_game_type;
|
||||
extern int gCurrent_net_game_count;
|
||||
extern tU32 gAnne_flic_data_length;
|
||||
extern int gShifted_default_yet;
|
||||
extern int gNet_storage_allocated;
|
||||
extern tU8* gFrank_flic_data;
|
||||
extern char* gNet_name;
|
||||
extern tU32 gFrank_flic_data_length;
|
||||
extern tU8* gAnne_flic_data;
|
||||
extern int gLast_net_choose_box;
|
||||
extern int gCurrent_game_selection;
|
||||
extern int gRace_index;
|
||||
extern int gRadio_selected;
|
||||
|
||||
// Offset: 0
|
||||
// Size: 149
|
||||
|
|
@ -22,7 +45,7 @@ void FrankAnneStart2();
|
|||
// EDX: pCurrent_choice
|
||||
// EBX: pString
|
||||
// ECX: pMax_length
|
||||
void GetPlayerName(int pStarting_to_type, int pCurrent_choice, char *pString, int *pMax_length);
|
||||
void GetPlayerName(int pStarting_to_type, int pCurrent_choice, char* pString, int* pMax_length);
|
||||
|
||||
// Offset: 688
|
||||
// Size: 203
|
||||
|
|
@ -54,13 +77,13 @@ int DoOnePlayerStart();
|
|||
// Size: 263
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NewNetGameUp(int *pCurrent_choice, int *pCurrent_mode);
|
||||
int NewNetGameUp(int* pCurrent_choice, int* pCurrent_mode);
|
||||
|
||||
// Offset: 1832
|
||||
// Size: 263
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NewNetGameDown(int *pCurrent_choice, int *pCurrent_mode);
|
||||
int NewNetGameDown(int* pCurrent_choice, int* pCurrent_mode);
|
||||
|
||||
// Offset: 2096
|
||||
// Size: 70
|
||||
|
|
@ -73,7 +96,7 @@ void DisposeJoinableGame(int pIndex);
|
|||
// EDX: pY_index
|
||||
// EBX: pFont_index
|
||||
// ECX: pText
|
||||
void DrawAnItem(int pX, int pY_index, int pFont_index, char *pText);
|
||||
void DrawAnItem(int pX, int pY_index, int pFont_index, char* pText);
|
||||
|
||||
// Offset: 2292
|
||||
// Size: 119
|
||||
|
|
@ -99,7 +122,7 @@ void DisposeJoinList(int pExemption);
|
|||
// Offset: 4420
|
||||
// Size: 227
|
||||
// EAX: pGame
|
||||
void AddToJoinList(tNet_game_details *pGame);
|
||||
void AddToJoinList(tNet_game_details* pGame);
|
||||
|
||||
// Offset: 4648
|
||||
// Size: 111
|
||||
|
|
@ -115,7 +138,7 @@ void NewNetStart2();
|
|||
// EDX: pCurrent_choice
|
||||
// EBX: pString
|
||||
// ECX: pMax_length
|
||||
void NewNetGetName(int pStarting_to_type, int pCurrent_choice, char *pString, int *pMax_length);
|
||||
void NewNetGetName(int pStarting_to_type, int pCurrent_choice, char* pString, int* pMax_length);
|
||||
|
||||
// Offset: 4888
|
||||
// Size: 72
|
||||
|
|
@ -129,22 +152,22 @@ int NewNetDone(int pCurrent_choice, int pCurrent_mode, int pGo_ahead, int pEscap
|
|||
// Size: 72
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NewNetGoAhead(int *pCurrent_choice, int *pCurrent_mode);
|
||||
int NewNetGoAhead(int* pCurrent_choice, int* pCurrent_mode);
|
||||
|
||||
// Offset: 5032
|
||||
// Size: 287
|
||||
// EAX: pGame_to_join
|
||||
tJoin_or_host_result JoinOrHostGame(tNet_game_details **pGame_to_join);
|
||||
tJoin_or_host_result JoinOrHostGame(tNet_game_details** pGame_to_join);
|
||||
|
||||
// Offset: 5320
|
||||
// Size: 223
|
||||
// EAX: pGame_options
|
||||
void GetNetOptions(tNet_game_options *pGame_options);
|
||||
void GetNetOptions(tNet_game_options* pGame_options);
|
||||
|
||||
// Offset: 5544
|
||||
// Size: 234
|
||||
// EAX: pGame_options
|
||||
void SetNetOptions(tNet_game_options *pGame_options);
|
||||
void SetNetOptions(tNet_game_options* pGame_options);
|
||||
|
||||
// Offset: 5780
|
||||
// Size: 72
|
||||
|
|
@ -209,25 +232,25 @@ void NetCheckboxChanged(int pIndex);
|
|||
// Size: 153
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetOptLeft(int *pCurrent_choice, int *pCurrent_mode);
|
||||
int NetOptLeft(int* pCurrent_choice, int* pCurrent_mode);
|
||||
|
||||
// Offset: 6992
|
||||
// Size: 157
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetOptRight(int *pCurrent_choice, int *pCurrent_mode);
|
||||
int NetOptRight(int* pCurrent_choice, int* pCurrent_mode);
|
||||
|
||||
// Offset: 7152
|
||||
// Size: 148
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetOptUp(int *pCurrent_choice, int *pCurrent_mode);
|
||||
int NetOptUp(int* pCurrent_choice, int* pCurrent_mode);
|
||||
|
||||
// Offset: 7300
|
||||
// Size: 148
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetOptDown(int *pCurrent_choice, int *pCurrent_mode);
|
||||
int NetOptDown(int* pCurrent_choice, int* pCurrent_mode);
|
||||
|
||||
// Offset: 7448
|
||||
// Size: 213
|
||||
|
|
@ -235,7 +258,7 @@ int NetOptDown(int *pCurrent_choice, int *pCurrent_mode);
|
|||
// EDX: pCurrent_mode
|
||||
// EBX: pX_offset
|
||||
// ECX: pY_offset
|
||||
int NetRadioClick(int *pCurrent_choice, int *pCurrent_mode, int pX_offset, int pY_offset);
|
||||
int NetRadioClick(int* pCurrent_choice, int* pCurrent_mode, int pX_offset, int pY_offset);
|
||||
|
||||
// Offset: 7664
|
||||
// Size: 142
|
||||
|
|
@ -249,7 +272,7 @@ void DefaultNetSettings();
|
|||
// Size: 98
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetOptGoAhead(int *pCurrent_choice, int *pCurrent_mode);
|
||||
int NetOptGoAhead(int* pCurrent_choice, int* pCurrent_mode);
|
||||
|
||||
// Offset: 8064
|
||||
// Size: 202
|
||||
|
|
@ -276,13 +299,13 @@ void DrawNetOptBox(int pCurrent_choice, int pCurrent_mode);
|
|||
// Offset: 8448
|
||||
// Size: 111
|
||||
// EAX: pGame_options
|
||||
void DoNetOptions(tNet_game_options *pGame_options);
|
||||
void DoNetOptions(tNet_game_options* pGame_options);
|
||||
|
||||
// Offset: 8560
|
||||
// Size: 190
|
||||
// EAX: pGame_type
|
||||
// EDX: pGame_options
|
||||
void SetOptions(tNet_game_type pGame_type, tNet_game_options *pGame_options);
|
||||
void SetOptions(tNet_game_type pGame_type, tNet_game_options* pGame_options);
|
||||
|
||||
// Offset: 8992
|
||||
// Size: 44
|
||||
|
|
@ -292,7 +315,7 @@ void DrawNetChooseInitial();
|
|||
// Size: 250
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetChooseGoAhead(int *pCurrent_choice, int *pCurrent_mode);
|
||||
int NetChooseGoAhead(int* pCurrent_choice, int* pCurrent_mode);
|
||||
|
||||
// Offset: 9288
|
||||
// Size: 182
|
||||
|
|
@ -320,42 +343,42 @@ void DrawNetChoose(int pCurrent_choice, int pCurrent_mode);
|
|||
// Size: 61
|
||||
// EAX: pCurrent_choice
|
||||
// EDX: pCurrent_mode
|
||||
int NetChooseLR(int *pCurrent_choice, int *pCurrent_mode);
|
||||
int NetChooseLR(int* pCurrent_choice, int* pCurrent_mode);
|
||||
|
||||
// Offset: 10356
|
||||
// Size: 190
|
||||
// EAX: pGame_type
|
||||
// EDX: pGame_options
|
||||
void SetGameTarget(tNet_game_type *pGame_type, tNet_game_options *pGame_options);
|
||||
void SetGameTarget(tNet_game_type* pGame_type, tNet_game_options* pGame_options);
|
||||
|
||||
// Offset: 10548
|
||||
// Size: 383
|
||||
// EAX: pGame_type
|
||||
// EDX: pGame_options
|
||||
// EBX: pRace_index
|
||||
int NetGameChoices(tNet_game_type *pGame_type, tNet_game_options *pGame_options, int *pRace_index);
|
||||
int NetGameChoices(tNet_game_type* pGame_type, tNet_game_options* pGame_options, int* pRace_index);
|
||||
|
||||
// Offset: 10932
|
||||
// Size: 95
|
||||
// EAX: pGame_type
|
||||
// EDX: pGame_options
|
||||
// EBX: pRace_index
|
||||
void ReadNetGameChoices(tNet_game_type *pGame_type, tNet_game_options *pGame_options, int *pRace_index);
|
||||
void ReadNetGameChoices(tNet_game_type* pGame_type, tNet_game_options* pGame_options, int* pRace_index);
|
||||
|
||||
// Offset: 11028
|
||||
// Size: 56
|
||||
// EAX: pRank
|
||||
int ChooseStartRace(int *pRank);
|
||||
int ChooseStartRace(int* pRank);
|
||||
|
||||
// Offset: 11084
|
||||
// Size: 63
|
||||
// EAX: pNet_game
|
||||
void SetUpOtherNetThings(tNet_game_details *pNet_game);
|
||||
void SetUpOtherNetThings(tNet_game_details* pNet_game);
|
||||
|
||||
// Offset: 11148
|
||||
// Size: 97
|
||||
// EAX: pNet_game
|
||||
void RequestCarDetails(tNet_game_details *pNet_game);
|
||||
void RequestCarDetails(tNet_game_details* pNet_game);
|
||||
|
||||
// Offset: 11248
|
||||
// Size: 181
|
||||
|
|
@ -364,12 +387,12 @@ int PickARandomCar();
|
|||
// Offset: 11432
|
||||
// Size: 54
|
||||
// EAX: pNet_game
|
||||
void PollCarDetails(tNet_game_details *pNet_game);
|
||||
void PollCarDetails(tNet_game_details* pNet_game);
|
||||
|
||||
// Offset: 11488
|
||||
// Size: 278
|
||||
// EAX: pOptions
|
||||
void SetNetAvailability(tNet_game_options *pOptions);
|
||||
void SetNetAvailability(tNet_game_options* pOptions);
|
||||
|
||||
// Offset: 11768
|
||||
// Size: 396
|
||||
|
|
@ -377,7 +400,7 @@ void SetNetAvailability(tNet_game_options *pOptions);
|
|||
// EDX: pOptions
|
||||
// EBX: pCar_index
|
||||
// ECX: pIm_the_host_so_fuck_off
|
||||
int ChooseNetCar(tNet_game_details *pNet_game, tNet_game_options *pOptions, int *pCar_index, int pIm_the_host_so_fuck_off);
|
||||
int ChooseNetCar(tNet_game_details* pNet_game, tNet_game_options* pOptions, int* pCar_index, int pIm_the_host_so_fuck_off);
|
||||
|
||||
// Offset: 12164
|
||||
// Size: 115
|
||||
|
|
|
|||
|
|
@ -1,20 +1,22 @@
|
|||
#ifndef _OPPONENT_H_
|
||||
#define _OPPONENT_H_
|
||||
|
||||
#include "dr_types.h"
|
||||
#include "br_types.h"
|
||||
#include "dr_types.h"
|
||||
|
||||
extern float gOpponent_nastyness_frigger;
|
||||
|
||||
// Offset: 0
|
||||
// Size: 137
|
||||
// EAX: pThe_actor
|
||||
// EDX: pThe_vector
|
||||
void PointActorAlongThisBloodyVector(br_actor *pThe_actor, br_vector3 *pThe_vector);
|
||||
void PointActorAlongThisBloodyVector(br_actor* pThe_actor, br_vector3* pThe_vector);
|
||||
|
||||
// Offset: 140
|
||||
// Size: 301
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pCommand
|
||||
void ProcessCurrentObjective(tOpponent_spec *pOpponent_spec, tProcess_objective_command pCommand);
|
||||
void ProcessCurrentObjective(tOpponent_spec* pOpponent_spec, tProcess_objective_command pCommand);
|
||||
|
||||
// Offset: 444
|
||||
// Size: 190
|
||||
|
|
@ -30,13 +32,13 @@ tS16 ReallocExtraPathSections(int pHow_many_then);
|
|||
// Size: 186
|
||||
// EAX: pFrom
|
||||
// EDX: pTo
|
||||
int PointVisibleFromHere(br_vector3 *pFrom, br_vector3 *pTo);
|
||||
int PointVisibleFromHere(br_vector3* pFrom, br_vector3* pTo);
|
||||
|
||||
// Offset: 1012
|
||||
// Size: 276
|
||||
// EAX: pActor_coords
|
||||
// EDX: pDistance
|
||||
tS16 FindNearestPathNode(br_vector3 *pActor_coords, br_scalar *pDistance);
|
||||
tS16 FindNearestPathNode(br_vector3* pActor_coords, br_scalar* pDistance);
|
||||
|
||||
// Offset: 1288
|
||||
// Size: 66
|
||||
|
|
@ -44,7 +46,7 @@ tS16 FindNearestPathNode(br_vector3 *pActor_coords, br_scalar *pDistance);
|
|||
// EDX: pPath_direction
|
||||
// EBX: pIntersect
|
||||
// ECX: pDistance
|
||||
tS16 FindNearestPathSection(br_vector3 *pActor_coords, br_vector3 *pPath_direction, br_vector3 *pIntersect, br_scalar *pDistance);
|
||||
tS16 FindNearestPathSection(br_vector3* pActor_coords, br_vector3* pPath_direction, br_vector3* pIntersect, br_scalar* pDistance);
|
||||
|
||||
// Offset: 1356
|
||||
// Size: 1187
|
||||
|
|
@ -52,37 +54,37 @@ tS16 FindNearestPathSection(br_vector3 *pActor_coords, br_vector3 *pPath_directi
|
|||
// EDX: pActor_coords
|
||||
// EBX: pPath_direction
|
||||
// ECX: pIntersect
|
||||
tS16 FindNearestGeneralSection(tCar_spec *pPursuee, br_vector3 *pActor_coords, br_vector3 *pPath_direction, br_vector3 *pIntersect, br_scalar *pDistance);
|
||||
tS16 FindNearestGeneralSection(tCar_spec* pPursuee, br_vector3* pActor_coords, br_vector3* pPath_direction, br_vector3* pIntersect, br_scalar* pDistance);
|
||||
|
||||
// Offset: 2544
|
||||
// Size: 171
|
||||
// EAX: pCar_spec
|
||||
void DeadStopCar(tCar_spec *pCar_spec);
|
||||
void DeadStopCar(tCar_spec* pCar_spec);
|
||||
|
||||
// Offset: 2716
|
||||
// Size: 69
|
||||
// EAX: pOpponent_spec
|
||||
void TurnOpponentPhysicsOn(tOpponent_spec *pOpponent_spec);
|
||||
void TurnOpponentPhysicsOn(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 2788
|
||||
// Size: 80
|
||||
// EAX: pOpponent_spec
|
||||
void TurnOpponentPhysicsOff(tOpponent_spec *pOpponent_spec);
|
||||
void TurnOpponentPhysicsOff(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 2868
|
||||
// Size: 247
|
||||
void NewObjective(tOpponent_spec *pOpponent_spec, tOpponent_objective_type pObjective_type, ...);
|
||||
void NewObjective(tOpponent_spec* pOpponent_spec, tOpponent_objective_type pObjective_type, ...);
|
||||
|
||||
// Offset: 3116
|
||||
// Size: 929
|
||||
// EAX: pOpponent_spec
|
||||
void CalcRaceRoute(tOpponent_spec *pOpponent_spec);
|
||||
void CalcRaceRoute(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 4048
|
||||
// Size: 790
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pSections_to_add
|
||||
void TopUpRandomRoute(tOpponent_spec *pOpponent_spec, int pSections_to_add);
|
||||
void TopUpRandomRoute(tOpponent_spec* pOpponent_spec, int pSections_to_add);
|
||||
|
||||
// Offset: 4840
|
||||
// Size: 942
|
||||
|
|
@ -90,63 +92,63 @@ void TopUpRandomRoute(tOpponent_spec *pOpponent_spec, int pSections_to_add);
|
|||
// EDX: pPerm_store
|
||||
// EBX: pNum_of_perm_store_sections
|
||||
// ECX: pTarget_section
|
||||
int SearchForSection(tRoute_section *pTemp_store, tRoute_section *pPerm_store, int *pNum_of_perm_store_sections, tS16 pTarget_section, int pDepth, br_scalar pDistance_so_far, tOpponent_spec *pOpponent_spec);
|
||||
int SearchForSection(tRoute_section* pTemp_store, tRoute_section* pPerm_store, int* pNum_of_perm_store_sections, tS16 pTarget_section, int pDepth, br_scalar pDistance_so_far, tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 5784
|
||||
// Size: 796
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pPlayer
|
||||
void CalcGetNearPlayerRoute(tOpponent_spec *pOpponent_spec, tCar_spec *pPlayer);
|
||||
void CalcGetNearPlayerRoute(tOpponent_spec* pOpponent_spec, tCar_spec* pPlayer);
|
||||
|
||||
// Offset: 6580
|
||||
// Size: 575
|
||||
// EAX: pOpponent_spec
|
||||
void CalcReturnToStartPointRoute(tOpponent_spec *pOpponent_spec);
|
||||
void CalcReturnToStartPointRoute(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 7156
|
||||
// Size: 47
|
||||
// EAX: pOpponent_spec
|
||||
void ClearOpponentsProjectedRoute(tOpponent_spec *pOpponent_spec);
|
||||
void ClearOpponentsProjectedRoute(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 7204
|
||||
// Size: 114
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pSection_no
|
||||
// EBX: pDirection
|
||||
int AddToOpponentsProjectedRoute(tOpponent_spec *pOpponent_spec, tS16 pSection_no, int pDirection);
|
||||
int AddToOpponentsProjectedRoute(tOpponent_spec* pOpponent_spec, tS16 pSection_no, int pDirection);
|
||||
|
||||
// Offset: 7320
|
||||
// Size: 177
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pPlaces
|
||||
int ShiftOpponentsProjectedRoute(tOpponent_spec *pOpponent_spec, int pPlaces);
|
||||
int ShiftOpponentsProjectedRoute(tOpponent_spec* pOpponent_spec, int pPlaces);
|
||||
|
||||
// Offset: 7500
|
||||
// Size: 134
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pMilliseconds
|
||||
void StunTheBugger(tOpponent_spec *pOpponent_spec, int pMilliseconds);
|
||||
void StunTheBugger(tOpponent_spec* pOpponent_spec, int pMilliseconds);
|
||||
|
||||
// Offset: 7636
|
||||
// Size: 47
|
||||
// EAX: pOpponent_spec
|
||||
void UnStunTheBugger(tOpponent_spec *pOpponent_spec);
|
||||
void UnStunTheBugger(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 7684
|
||||
// Size: 436
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pCommand
|
||||
void ProcessCompleteRace(tOpponent_spec *pOpponent_spec, tProcess_objective_command pCommand);
|
||||
void ProcessCompleteRace(tOpponent_spec* pOpponent_spec, tProcess_objective_command pCommand);
|
||||
|
||||
// Offset: 8120
|
||||
// Size: 337
|
||||
// EAX: pPursuee
|
||||
void StartRecordingTrail(tCar_spec *pPursuee);
|
||||
void StartRecordingTrail(tCar_spec* pPursuee);
|
||||
|
||||
// Offset: 8460
|
||||
// Size: 1039
|
||||
// EAX: pPursuee
|
||||
void RecordNextTrailNode(tCar_spec *pPursuee);
|
||||
void RecordNextTrailNode(tCar_spec* pPursuee);
|
||||
|
||||
// Offset: 9500
|
||||
// Size: 78
|
||||
|
|
@ -154,102 +156,102 @@ void RecordNextTrailNode(tCar_spec *pPursuee);
|
|||
// EDX: pPursuee
|
||||
// EBX: pSection_v
|
||||
// ECX: pIntersect
|
||||
tS16 FindNearestTrailSection(tOpponent_spec *pOpponent_spec, tCar_spec *pPursuee, br_vector3 *pSection_v, br_vector3 *pIntersect, br_scalar *pDistance);
|
||||
tS16 FindNearestTrailSection(tOpponent_spec* pOpponent_spec, tCar_spec* pPursuee, br_vector3* pSection_v, br_vector3* pIntersect, br_scalar* pDistance);
|
||||
|
||||
// Offset: 9580
|
||||
// Size: 111
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pSection
|
||||
tS16 CalcNextTrailSection(tOpponent_spec *pOpponent_spec, int pSection);
|
||||
tS16 CalcNextTrailSection(tOpponent_spec* pOpponent_spec, int pSection);
|
||||
|
||||
// Offset: 9692
|
||||
// Size: 2515
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pCommand
|
||||
void ProcessPursueAndTwat(tOpponent_spec *pOpponent_spec, tProcess_objective_command pCommand);
|
||||
void ProcessPursueAndTwat(tOpponent_spec* pOpponent_spec, tProcess_objective_command pCommand);
|
||||
|
||||
// Offset: 12208
|
||||
// Size: 638
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pCommand
|
||||
void ProcessRunAway(tOpponent_spec *pOpponent_spec, tProcess_objective_command pCommand);
|
||||
void ProcessRunAway(tOpponent_spec* pOpponent_spec, tProcess_objective_command pCommand);
|
||||
|
||||
// Offset: 12848
|
||||
// Size: 126
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pCommand
|
||||
void ProcessWaitForSomeHaplessSod(tOpponent_spec *pOpponent_spec, tProcess_objective_command pCommand);
|
||||
void ProcessWaitForSomeHaplessSod(tOpponent_spec* pOpponent_spec, tProcess_objective_command pCommand);
|
||||
|
||||
// Offset: 12976
|
||||
// Size: 629
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pCommand
|
||||
void ProcessReturnToStart(tOpponent_spec *pOpponent_spec, tProcess_objective_command pCommand);
|
||||
void ProcessReturnToStart(tOpponent_spec* pOpponent_spec, tProcess_objective_command pCommand);
|
||||
|
||||
// Offset: 13608
|
||||
// Size: 921
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pCommand
|
||||
void ProcessLevitate(tOpponent_spec *pOpponent_spec, tProcess_objective_command pCommand);
|
||||
void ProcessLevitate(tOpponent_spec* pOpponent_spec, tProcess_objective_command pCommand);
|
||||
|
||||
// Offset: 14532
|
||||
// Size: 543
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pCommand
|
||||
void ProcessGetNearPlayer(tOpponent_spec *pOpponent_spec, tProcess_objective_command pCommand);
|
||||
void ProcessGetNearPlayer(tOpponent_spec* pOpponent_spec, tProcess_objective_command pCommand);
|
||||
|
||||
// Offset: 15076
|
||||
// Size: 230
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pCommand
|
||||
void ProcessFrozen(tOpponent_spec *pOpponent_spec, tProcess_objective_command pCommand);
|
||||
void ProcessFrozen(tOpponent_spec* pOpponent_spec, tProcess_objective_command pCommand);
|
||||
|
||||
// Offset: 15308
|
||||
// Size: 355
|
||||
// EAX: pOpponent_spec
|
||||
int HeadOnWithPlayerPossible(tOpponent_spec *pOpponent_spec);
|
||||
int HeadOnWithPlayerPossible(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 15664
|
||||
// Size: 88
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pPursuee
|
||||
int AlreadyPursuingCar(tOpponent_spec *pOpponent_spec, tCar_spec *pPursuee);
|
||||
int AlreadyPursuingCar(tOpponent_spec* pOpponent_spec, tCar_spec* pPursuee);
|
||||
|
||||
// Offset: 15752
|
||||
// Size: 97
|
||||
// EAX: pOpponent_spec
|
||||
int LastTwatteeAPlayer(tOpponent_spec *pOpponent_spec);
|
||||
int LastTwatteeAPlayer(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 15852
|
||||
// Size: 97
|
||||
// EAX: pOpponent_spec
|
||||
int LastTwatterAPlayer(tOpponent_spec *pOpponent_spec);
|
||||
int LastTwatterAPlayer(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 15952
|
||||
// Size: 130
|
||||
// EAX: pOpponent_spec
|
||||
void ObjectiveComplete(tOpponent_spec *pOpponent_spec);
|
||||
void ObjectiveComplete(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 16084
|
||||
// Size: 542
|
||||
// EAX: pOpponent_spec
|
||||
void TeleportOpponentToNearestSafeLocation(tOpponent_spec *pOpponent_spec);
|
||||
void TeleportOpponentToNearestSafeLocation(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 16628
|
||||
// Size: 4057
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pMust_choose_one
|
||||
void ChooseNewObjective(tOpponent_spec *pOpponent_spec, int pMust_choose_one);
|
||||
void ChooseNewObjective(tOpponent_spec* pOpponent_spec, int pMust_choose_one);
|
||||
|
||||
// Offset: 20688
|
||||
// Size: 365
|
||||
// EAX: pOpponent_spec
|
||||
void ProcessThisOpponent(tOpponent_spec *pOpponent_spec);
|
||||
void ProcessThisOpponent(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 21056
|
||||
// Size: 256
|
||||
// EAX: pPoint
|
||||
int IsNetCarActive(br_vector3 *pPoint);
|
||||
int IsNetCarActive(br_vector3* pPoint);
|
||||
|
||||
// Offset: 21312
|
||||
// Size: 692
|
||||
|
|
@ -262,53 +264,53 @@ void ForceRebuildActiveCarList();
|
|||
// Offset: 22064
|
||||
// Size: 138
|
||||
// EAX: pOpponent_spec
|
||||
void StartToCheat(tOpponent_spec *pOpponent_spec);
|
||||
void StartToCheat(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 22204
|
||||
// Size: 138
|
||||
// EAX: pOpponent_spec
|
||||
void OiStopCheating(tOpponent_spec *pOpponent_spec);
|
||||
void OiStopCheating(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 22344
|
||||
// Size: 326
|
||||
// EAX: pOpponent_spec
|
||||
int TeleportCopToStart(tOpponent_spec *pOpponent_spec);
|
||||
int TeleportCopToStart(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 22672
|
||||
// Size: 139
|
||||
// EAX: pOpponent_spec
|
||||
void CalcDistanceFromHome(tOpponent_spec *pOpponent_spec);
|
||||
void CalcDistanceFromHome(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 22812
|
||||
// Size: 767
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pMassage_count
|
||||
int MassageOpponentPosition(tOpponent_spec *pOpponent_spec, int pMassage_count);
|
||||
int MassageOpponentPosition(tOpponent_spec* pOpponent_spec, int pMassage_count);
|
||||
|
||||
// Offset: 23580
|
||||
// Size: 821
|
||||
// EAX: pOpponent_spec
|
||||
int RematerialiseOpponentOnThisSection(tOpponent_spec *pOpponent_spec, br_scalar pSpeed, tS16 pSection_no);
|
||||
int RematerialiseOpponentOnThisSection(tOpponent_spec* pOpponent_spec, br_scalar pSpeed, tS16 pSection_no);
|
||||
|
||||
// Offset: 24404
|
||||
// Size: 482
|
||||
// EAX: pOpponent_spec
|
||||
int RematerialiseOpponentOnNearestSection(tOpponent_spec *pOpponent_spec, br_scalar pSpeed);
|
||||
int RematerialiseOpponentOnNearestSection(tOpponent_spec* pOpponent_spec, br_scalar pSpeed);
|
||||
|
||||
// Offset: 24888
|
||||
// Size: 2365
|
||||
// EAX: pOpponent_spec
|
||||
int RematerialiseOpponent(tOpponent_spec *pOpponent_spec, br_scalar pSpeed);
|
||||
int RematerialiseOpponent(tOpponent_spec* pOpponent_spec, br_scalar pSpeed);
|
||||
|
||||
// Offset: 27256
|
||||
// Size: 434
|
||||
// EAX: pOpponent_spec
|
||||
void CalcPlayerConspicuousness(tOpponent_spec *pOpponent_spec);
|
||||
void CalcPlayerConspicuousness(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 27692
|
||||
// Size: 192
|
||||
// EAX: pOpponent_spec
|
||||
void CalcOpponentConspicuousnessWithAViewToCheatingLikeFuck(tOpponent_spec *pOpponent_spec);
|
||||
void CalcOpponentConspicuousnessWithAViewToCheatingLikeFuck(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 27884
|
||||
// Size: 52
|
||||
|
|
@ -323,7 +325,7 @@ void LoadCopCars();
|
|||
// Offset: 28168
|
||||
// Size: 2460
|
||||
// EAX: pF
|
||||
void LoadInOppoPaths(FILE *pF);
|
||||
void LoadInOppoPaths(FILE* pF);
|
||||
|
||||
// Offset: 30628
|
||||
// Size: 153
|
||||
|
|
@ -341,7 +343,7 @@ void SetInitialCopPositions();
|
|||
// Offset: 31988
|
||||
// Size: 2545
|
||||
// EAX: pRace_info
|
||||
void InitOpponents(tRace_info *pRace_info);
|
||||
void InitOpponents(tRace_info* pRace_info);
|
||||
|
||||
// Offset: 34536
|
||||
// Size: 142
|
||||
|
|
@ -355,7 +357,7 @@ void WakeUpOpponentsToTheFactThatTheStartHasBeenJumped(int pWhat_the_countdown_w
|
|||
// Offset: 34992
|
||||
// Size: 91
|
||||
// EAX: pCar_spec
|
||||
void ReportMurderToPoliceDepartment(tCar_spec *pCar_spec);
|
||||
void ReportMurderToPoliceDepartment(tCar_spec* pCar_spec);
|
||||
|
||||
// Offset: 35084
|
||||
// Size: 178
|
||||
|
|
@ -377,7 +379,7 @@ char* GetDriverName(tVehicle_type pCategory, int pIndex);
|
|||
// Offset: 35676
|
||||
// Size: 240
|
||||
// EAX: pCar_spec
|
||||
tOpponent_spec* GetOpponentSpecFromCarSpec(tCar_spec *pCar_spec);
|
||||
tOpponent_spec* GetOpponentSpecFromCarSpec(tCar_spec* pCar_spec);
|
||||
|
||||
// Offset: 35916
|
||||
// Size: 113
|
||||
|
|
@ -388,62 +390,62 @@ tCar_spec* GetCarSpecFromGlobalOppoIndex(int pIndex);
|
|||
// Size: 95
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pSection_no
|
||||
int GetOpponentsRealSection(tOpponent_spec *pOpponent_spec, int pSection_no);
|
||||
int GetOpponentsRealSection(tOpponent_spec* pOpponent_spec, int pSection_no);
|
||||
|
||||
// Offset: 36128
|
||||
// Size: 106
|
||||
// EAX: pOpponent_spec
|
||||
int GetOpponentsFirstSection(tOpponent_spec *pOpponent_spec);
|
||||
int GetOpponentsFirstSection(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 36236
|
||||
// Size: 185
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pCurrent_section
|
||||
int GetOpponentsNextSection(tOpponent_spec *pOpponent_spec, tS16 pCurrent_section);
|
||||
int GetOpponentsNextSection(tOpponent_spec* pOpponent_spec, tS16 pCurrent_section);
|
||||
|
||||
// Offset: 36424
|
||||
// Size: 239
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pSection
|
||||
tS16 GetOpponentsSectionStartNode(tOpponent_spec *pOpponent_spec, tS16 pSection);
|
||||
tS16 GetOpponentsSectionStartNode(tOpponent_spec* pOpponent_spec, tS16 pSection);
|
||||
|
||||
// Offset: 36664
|
||||
// Size: 185
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pSection
|
||||
tS16 GetOpponentsSectionFinishNode(tOpponent_spec *pOpponent_spec, tS16 pSection);
|
||||
tS16 GetOpponentsSectionFinishNode(tOpponent_spec* pOpponent_spec, tS16 pSection);
|
||||
|
||||
// Offset: 36852
|
||||
// Size: 284
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pSection
|
||||
br_vector3* GetOpponentsSectionStartNodePoint(tOpponent_spec *pOpponent_spec, tS16 pSection);
|
||||
br_vector3* GetOpponentsSectionStartNodePoint(tOpponent_spec* pOpponent_spec, tS16 pSection);
|
||||
|
||||
// Offset: 37136
|
||||
// Size: 266
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pSection
|
||||
br_vector3* GetOpponentsSectionFinishNodePoint(tOpponent_spec *pOpponent_spec, tS16 pSection);
|
||||
br_vector3* GetOpponentsSectionFinishNodePoint(tOpponent_spec* pOpponent_spec, tS16 pSection);
|
||||
|
||||
// Offset: 37404
|
||||
// Size: 165
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pSection
|
||||
br_scalar GetOpponentsSectionWidth(tOpponent_spec *pOpponent_spec, tS16 pSection);
|
||||
br_scalar GetOpponentsSectionWidth(tOpponent_spec* pOpponent_spec, tS16 pSection);
|
||||
|
||||
// Offset: 37572
|
||||
// Size: 262
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pSection
|
||||
// EBX: pTowards_finish
|
||||
int GetOpponentsSectionMinSpeed(tOpponent_spec *pOpponent_spec, tS16 pSection, int pTowards_finish);
|
||||
int GetOpponentsSectionMinSpeed(tOpponent_spec* pOpponent_spec, tS16 pSection, int pTowards_finish);
|
||||
|
||||
// Offset: 37836
|
||||
// Size: 262
|
||||
// EAX: pOpponent_spec
|
||||
// EDX: pSection
|
||||
// EBX: pTowards_finish
|
||||
int GetOpponentsSectionMaxSpeed(tOpponent_spec *pOpponent_spec, tS16 pSection, int pTowards_finish);
|
||||
int GetOpponentsSectionMaxSpeed(tOpponent_spec* pOpponent_spec, tS16 pSection, int pTowards_finish);
|
||||
|
||||
// Offset: 38100
|
||||
// Size: 59
|
||||
|
|
@ -453,19 +455,19 @@ void InitOpponentPsyche(int pOpponent_index);
|
|||
// Offset: 38160
|
||||
// Size: 108
|
||||
// EAX: pOpponent_spec
|
||||
void ClearTwattageOccurrenceVariables(tOpponent_spec *pOpponent_spec);
|
||||
void ClearTwattageOccurrenceVariables(tOpponent_spec* pOpponent_spec);
|
||||
|
||||
// Offset: 38268
|
||||
// Size: 86
|
||||
// EAX: pA_car
|
||||
// EDX: pAnother_car
|
||||
void TwoCarsHitEachOther(tCar_spec *pA_car, tCar_spec *pAnother_car);
|
||||
void TwoCarsHitEachOther(tCar_spec* pA_car, tCar_spec* pAnother_car);
|
||||
|
||||
// Offset: 38356
|
||||
// Size: 1166
|
||||
// EAX: pTwatter
|
||||
// EDX: pTwattee
|
||||
void RecordOpponentTwattageOccurrence(tCar_spec *pTwatter, tCar_spec *pTwattee);
|
||||
void RecordOpponentTwattageOccurrence(tCar_spec* pTwatter, tCar_spec* pTwattee);
|
||||
|
||||
// Offset: 39524
|
||||
// Size: 67
|
||||
|
|
@ -503,7 +505,7 @@ void DeleteOrphanNodes();
|
|||
// EAX: pInserted_node
|
||||
// EDX: pSection_no
|
||||
// EBX: pWhere
|
||||
void InsertThisNodeInThisSectionHere(tS16 pInserted_node, tS16 pSection_no, br_vector3 *pWhere);
|
||||
void InsertThisNodeInThisSectionHere(tS16 pInserted_node, tS16 pSection_no, br_vector3* pWhere);
|
||||
|
||||
// Offset: 42752
|
||||
// Size: 254
|
||||
|
|
@ -524,13 +526,13 @@ void RecalcNearestPathSectionWidth(br_scalar pAdjustment);
|
|||
// EAX: pNegative_x_vector
|
||||
// EDX: pStart
|
||||
// EBX: pFinish
|
||||
void CalcNegativeXVector(br_vector3 *pNegative_x_vector, br_vector3 *pStart, br_vector3 *pFinish, br_scalar pLength);
|
||||
void CalcNegativeXVector(br_vector3* pNegative_x_vector, br_vector3* pStart, br_vector3* pFinish, br_scalar pLength);
|
||||
|
||||
// Offset: 44700
|
||||
// Size: 162
|
||||
// EAX: pModel
|
||||
// EDX: pVertex_num
|
||||
void MakeVertexAndOffsetIt(br_model *pModel, int pVertex_num, br_scalar pX, br_scalar pY, br_scalar pZ, br_vector3 *pOffset);
|
||||
void MakeVertexAndOffsetIt(br_model* pModel, int pVertex_num, br_scalar pX, br_scalar pY, br_scalar pZ, br_vector3* pOffset);
|
||||
|
||||
// Offset: 44864
|
||||
// Size: 134
|
||||
|
|
@ -538,7 +540,7 @@ void MakeVertexAndOffsetIt(br_model *pModel, int pVertex_num, br_scalar pX, br_s
|
|||
// EDX: pFace_num
|
||||
// EBX: pV0
|
||||
// ECX: pV1
|
||||
void MakeFaceAndTextureIt(br_model *pModel, int pFace_num, int pV0, int pV1, int pV2, br_material *pMaterial);
|
||||
void MakeFaceAndTextureIt(br_model* pModel, int pFace_num, int pV0, int pV1, int pV2, br_material* pMaterial);
|
||||
|
||||
// Offset: 45000
|
||||
// Size: 942
|
||||
|
|
@ -546,7 +548,7 @@ void MakeFaceAndTextureIt(br_model *pModel, int pFace_num, int pV0, int pV1, int
|
|||
// EDX: pFirst_face
|
||||
// EBX: pStart
|
||||
// ECX: pFinish
|
||||
void MakeSection(br_uint_16 pFirst_vertex, br_uint_16 pFirst_face, br_vector3 *pStart, br_vector3 *pFinish, br_scalar pWidth, br_material *pMaterial_centre_lt, br_material *pMaterial_centre_dk, br_material *pMaterial_edges_start_lt, br_material *pMaterial_edges_start_dk, br_material *pMaterial_edges_finish_lt, br_material *pMaterial_edges_finish_dk);
|
||||
void MakeSection(br_uint_16 pFirst_vertex, br_uint_16 pFirst_face, br_vector3* pStart, br_vector3* pFinish, br_scalar pWidth, br_material* pMaterial_centre_lt, br_material* pMaterial_centre_dk, br_material* pMaterial_edges_start_lt, br_material* pMaterial_edges_start_dk, br_material* pMaterial_edges_finish_lt, br_material* pMaterial_edges_finish_dk);
|
||||
|
||||
// Offset: 45944
|
||||
// Size: 1235
|
||||
|
|
@ -554,20 +556,20 @@ void MakeSection(br_uint_16 pFirst_vertex, br_uint_16 pFirst_face, br_vector3 *p
|
|||
// EDX: pFirst_face
|
||||
// EBX: pPoint
|
||||
// ECX: pMaterial_1
|
||||
void MakeCube(br_uint_16 pFirst_vertex, br_uint_16 pFirst_face, br_vector3 *pPoint, br_material *pMaterial_1, br_material *pMaterial_2, br_material *pMaterial_3);
|
||||
void MakeCube(br_uint_16 pFirst_vertex, br_uint_16 pFirst_face, br_vector3* pPoint, br_material* pMaterial_1, br_material* pMaterial_2, br_material* pMaterial_3);
|
||||
|
||||
// Offset: 47180
|
||||
// Size: 88
|
||||
// EAX: pFace_index_ptr
|
||||
// EDX: pVertex_index_ptr
|
||||
void CalcNumberOfFacesAndVerticesForOppoPathModel(br_uint_16 *pFace_index_ptr, br_uint_16 *pVertex_index_ptr);
|
||||
void CalcNumberOfFacesAndVerticesForOppoPathModel(br_uint_16* pFace_index_ptr, br_uint_16* pVertex_index_ptr);
|
||||
|
||||
// Offset: 47268
|
||||
// Size: 433
|
||||
// EAX: pModel
|
||||
// EDX: pNum_faces
|
||||
// EBX: pNum_vertices
|
||||
void ReallocModelFacesAndVertices(br_model *pModel, int pNum_faces, int pNum_vertices);
|
||||
void ReallocModelFacesAndVertices(br_model* pModel, int pNum_faces, int pNum_vertices);
|
||||
|
||||
// Offset: 47704
|
||||
// Size: 127
|
||||
|
|
|
|||
|
|
@ -1,33 +1,37 @@
|
|||
#ifndef _PEDESTRN_H_
|
||||
#define _PEDESTRN_H_
|
||||
|
||||
#include "dr_types.h"
|
||||
#include "br_types.h"
|
||||
#include "dr_types.h"
|
||||
|
||||
extern int gMin_respawn_time;
|
||||
extern int gRespawn_variance;
|
||||
extern float gZombie_factor;
|
||||
|
||||
// Offset: 0
|
||||
// Size: 152
|
||||
// EAX: pModel
|
||||
void PedModelUpdate(br_model *pModel, br_scalar x0, br_scalar y0, br_scalar x1, br_scalar y1, br_scalar x2, br_scalar y2, br_scalar x3, br_scalar y3);
|
||||
void PedModelUpdate(br_model* pModel, br_scalar x0, br_scalar y0, br_scalar x1, br_scalar y1, br_scalar x2, br_scalar y2, br_scalar x3, br_scalar y3);
|
||||
|
||||
// Offset: 152
|
||||
// Size: 98
|
||||
// EAX: pActor
|
||||
int ActorIsPedestrian(br_actor *pActor);
|
||||
int ActorIsPedestrian(br_actor* pActor);
|
||||
|
||||
// Offset: 252
|
||||
// Size: 79
|
||||
// EAX: pActor
|
||||
br_scalar PedHeightFromActor(br_actor *pActor);
|
||||
br_scalar PedHeightFromActor(br_actor* pActor);
|
||||
|
||||
// Offset: 332
|
||||
// Size: 52
|
||||
// EAX: pActor
|
||||
int GetPedestrianValue(br_actor *pActor);
|
||||
int GetPedestrianValue(br_actor* pActor);
|
||||
|
||||
// Offset: 384
|
||||
// Size: 88
|
||||
// EAX: pActor
|
||||
int PedestrianActorIsPerson(br_actor *pActor);
|
||||
int PedestrianActorIsPerson(br_actor* pActor);
|
||||
|
||||
// Offset: 472
|
||||
// Size: 87
|
||||
|
|
@ -38,7 +42,7 @@ br_actor* GetPedestrianActor(int pIndex);
|
|||
// Size: 97
|
||||
// EAX: pActor
|
||||
// EDX: pFlipped
|
||||
br_pixelmap* GetPedestrianTexture(br_actor *pActor, int *pFlipped);
|
||||
br_pixelmap* GetPedestrianTexture(br_actor* pActor, int* pFlipped);
|
||||
|
||||
// Offset: 660
|
||||
// Size: 153
|
||||
|
|
@ -51,11 +55,11 @@ void InitPedGibs();
|
|||
// Offset: 1736
|
||||
// Size: 240
|
||||
// EAX: pActor
|
||||
void SetPedMaterialForRender(br_actor *pActor);
|
||||
void SetPedMaterialForRender(br_actor* pActor);
|
||||
|
||||
// Offset: 1976
|
||||
// Size: 158
|
||||
void PedCallBack(br_actor *pActor, br_model *pModel, br_material *pMaterial, void *pRender_data, br_uint_8 pStyle, int pOn_screen);
|
||||
void PedCallBack(br_actor* pActor, br_model* pModel, br_material* pMaterial, void* pRender_data, br_uint_8 pStyle, int pOn_screen);
|
||||
|
||||
// Offset: 2136
|
||||
// Size: 516
|
||||
|
|
@ -64,12 +68,12 @@ void InitPeds();
|
|||
// Offset: 2652
|
||||
// Size: 275
|
||||
// EAX: pActor
|
||||
void MungeModelSize(br_actor *pActor, br_scalar pScaling_factor);
|
||||
void MungeModelSize(br_actor* pActor, br_scalar pScaling_factor);
|
||||
|
||||
// Offset: 2928
|
||||
// Size: 1468
|
||||
// EAX: pPedestrian
|
||||
int BurstPedestrian(tPedestrian_data *pPedestrian, float pSplattitudinalitude, int pAllow_explosion);
|
||||
int BurstPedestrian(tPedestrian_data* pPedestrian, float pSplattitudinalitude, int pAllow_explosion);
|
||||
|
||||
// Offset: 4396
|
||||
// Size: 137
|
||||
|
|
@ -81,7 +85,7 @@ void ResetAllPedGibs();
|
|||
// EDX: pSize
|
||||
// EBX: pGib_index
|
||||
// ECX: pPed_index
|
||||
void AdjustPedGib(int pIndex, int pSize, int pGib_index, int pPed_index, br_matrix34 *pTrans);
|
||||
void AdjustPedGib(int pIndex, int pSize, int pGib_index, int pPed_index, br_matrix34* pTrans);
|
||||
|
||||
// Offset: 4736
|
||||
// Size: 810
|
||||
|
|
@ -91,7 +95,7 @@ void MungePedGibs(tU32 pFrame_period);
|
|||
// Offset: 5548
|
||||
// Size: 267
|
||||
// EAX: pPedestrian
|
||||
void KillPedestrian(tPedestrian_data *pPedestrian);
|
||||
void KillPedestrian(tPedestrian_data* pPedestrian);
|
||||
|
||||
// Offset: 5816
|
||||
// Size: 302
|
||||
|
|
@ -99,55 +103,55 @@ void KillPedestrian(tPedestrian_data *pPedestrian);
|
|||
// EDX: pPixelmap
|
||||
// EBX: pHeight
|
||||
// ECX: pWidth
|
||||
void CalcPedWidthNHeight(tPedestrian_data *pPedestrian, br_pixelmap *pPixelmap, br_scalar *pHeight, br_scalar *pWidth);
|
||||
void CalcPedWidthNHeight(tPedestrian_data* pPedestrian, br_pixelmap* pPixelmap, br_scalar* pHeight, br_scalar* pWidth);
|
||||
|
||||
// Offset: 6120
|
||||
// Size: 1942
|
||||
// EAX: pPedestrian
|
||||
int PedestrianNextInstruction(tPedestrian_data *pPedestrian, float pDanger_level, int pPosition_explicitly, int pMove_pc);
|
||||
int PedestrianNextInstruction(tPedestrian_data* pPedestrian, float pDanger_level, int pPosition_explicitly, int pMove_pc);
|
||||
|
||||
// Offset: 8064
|
||||
// Size: 464
|
||||
// EAX: pPedestrian
|
||||
// EDX: pAction_changed
|
||||
void MungePedestrianSequence(tPedestrian_data *pPedestrian, int pAction_changed);
|
||||
void MungePedestrianSequence(tPedestrian_data* pPedestrian, int pAction_changed);
|
||||
|
||||
// Offset: 8528
|
||||
// Size: 166
|
||||
// EAX: pPedestrian
|
||||
void DetachPedFromCar(tPedestrian_data *pPedestrian);
|
||||
void DetachPedFromCar(tPedestrian_data* pPedestrian);
|
||||
|
||||
// Offset: 8696
|
||||
// Size: 117
|
||||
// EAX: pPedestrian
|
||||
void SetPedPos(tPedestrian_data *pPedestrian);
|
||||
void SetPedPos(tPedestrian_data* pPedestrian);
|
||||
|
||||
// Offset: 8816
|
||||
// Size: 59
|
||||
// EAX: pActor
|
||||
void DetachPedActorFromCar(br_actor *pActor);
|
||||
void DetachPedActorFromCar(br_actor* pActor);
|
||||
|
||||
// Offset: 8876
|
||||
// Size: 1317
|
||||
// EAX: pPedestrian
|
||||
void MungePedestrianFrames(tPedestrian_data *pPedestrian);
|
||||
void MungePedestrianFrames(tPedestrian_data* pPedestrian);
|
||||
|
||||
// Offset: 10196
|
||||
// Size: 1288
|
||||
// EAX: pPedestrian
|
||||
void MungePedModel(tPedestrian_data *pPedestrian);
|
||||
void MungePedModel(tPedestrian_data* pPedestrian);
|
||||
|
||||
// Offset: 11484
|
||||
// Size: 408
|
||||
// EAX: pPedestrian
|
||||
// EDX: pAction_index
|
||||
// EBX: pRedo_frames_etc
|
||||
void ChangeActionTo(tPedestrian_data *pPedestrian, int pAction_index, int pRedo_frames_etc);
|
||||
void ChangeActionTo(tPedestrian_data* pPedestrian, int pAction_index, int pRedo_frames_etc);
|
||||
|
||||
// Offset: 11892
|
||||
// Size: 589
|
||||
// EAX: pPedestrian
|
||||
int MungePedestrianAction(tPedestrian_data *pPedestrian, float pDanger_level);
|
||||
int MungePedestrianAction(tPedestrian_data* pPedestrian, float pDanger_level);
|
||||
|
||||
// Offset: 12484
|
||||
// Size: 105
|
||||
|
|
@ -156,20 +160,20 @@ void MakeFlagWavingBastardWaveHisFlagWhichIsTheProbablyTheLastThingHeWillEverDo(
|
|||
// Offset: 12592
|
||||
// Size: 2334
|
||||
// EAX: pPedestrian
|
||||
void MungePedestrianPath(tPedestrian_data *pPedestrian, float pDanger_level, br_vector3 *pDanger_direction);
|
||||
void MungePedestrianPath(tPedestrian_data* pPedestrian, float pDanger_level, br_vector3* pDanger_direction);
|
||||
|
||||
// Offset: 14928
|
||||
// Size: 764
|
||||
// EAX: pPedestrian
|
||||
// EDX: pDanger_direction
|
||||
float CalcPedestrianDangerLevel(tPedestrian_data *pPedestrian, br_vector3 *pDanger_direction);
|
||||
float CalcPedestrianDangerLevel(tPedestrian_data* pPedestrian, br_vector3* pDanger_direction);
|
||||
|
||||
// Offset: 15692
|
||||
// Size: 972
|
||||
// EAX: pPedestrian
|
||||
// EDX: pCar
|
||||
// EBX: pCar_actor
|
||||
tPed_hit_position MoveToEdgeOfCar(tPedestrian_data *pPedestrian, tCollision_info *pCar, br_actor *pCar_actor, br_scalar pPed_x, br_scalar pPed_z, br_scalar pCar_bounds_min_x, br_scalar pCar_bounds_max_x, br_scalar pCar_bounds_min_z, br_scalar pCar_bounds_max_z, br_vector3 *pMin_ped_bounds_car, br_vector3 *pMax_ped_bounds_car);
|
||||
tPed_hit_position MoveToEdgeOfCar(tPedestrian_data* pPedestrian, tCollision_info* pCar, br_actor* pCar_actor, br_scalar pPed_x, br_scalar pPed_z, br_scalar pCar_bounds_min_x, br_scalar pCar_bounds_max_x, br_scalar pCar_bounds_min_z, br_scalar pCar_bounds_max_z, br_vector3* pMin_ped_bounds_car, br_vector3* pMax_ped_bounds_car);
|
||||
|
||||
// Offset: 16664
|
||||
// Size: 101
|
||||
|
|
@ -179,30 +183,30 @@ void CheckLastPed();
|
|||
// Size: 319
|
||||
// EAX: pCar
|
||||
// EDX: pPed_car
|
||||
int BloodyWheels(tCar_spec *pCar, br_vector3 *pPed_car, br_scalar pSize, br_vector3 *pPed_glob);
|
||||
int BloodyWheels(tCar_spec* pCar, br_vector3* pPed_car, br_scalar pSize, br_vector3* pPed_glob);
|
||||
|
||||
// Offset: 17088
|
||||
// Size: 142
|
||||
// EAX: pPedestrian
|
||||
// EDX: pCar
|
||||
int FancyATossOffMate(tPedestrian_data *pPedestrian, tCollision_info *pCar, float pImpact_speed);
|
||||
int FancyATossOffMate(tPedestrian_data* pPedestrian, tCollision_info* pCar, float pImpact_speed);
|
||||
|
||||
// Offset: 17232
|
||||
// Size: 5870
|
||||
// EAX: pPedestrian
|
||||
void CheckPedestrianDeathScenario(tPedestrian_data *pPedestrian);
|
||||
void CheckPedestrianDeathScenario(tPedestrian_data* pPedestrian);
|
||||
|
||||
// Offset: 23104
|
||||
// Size: 769
|
||||
// EAX: pPedestrian
|
||||
// EDX: pIndex
|
||||
void SendPedestrian(tPedestrian_data *pPedestrian, int pIndex);
|
||||
void SendPedestrian(tPedestrian_data* pPedestrian, int pIndex);
|
||||
|
||||
// Offset: 23876
|
||||
// Size: 1162
|
||||
// EAX: pPedestrian
|
||||
// EDX: pIndex
|
||||
void DoPedestrian(tPedestrian_data *pPedestrian, int pIndex);
|
||||
void DoPedestrian(tPedestrian_data* pPedestrian, int pIndex);
|
||||
|
||||
// Offset: 25040
|
||||
// Size: 767
|
||||
|
|
@ -210,13 +214,13 @@ void DoPedestrian(tPedestrian_data *pPedestrian, int pIndex);
|
|||
// EDX: pAction_index
|
||||
// EBX: pFrame_index
|
||||
// ECX: pHit_points
|
||||
void AdjustPedestrian(int pIndex, int pAction_index, int pFrame_index, int pHit_points, int pDone_initial, tU16 pParent, br_actor *pParent_actor, float pSpin_period, br_scalar pJump_magnitude, br_vector3 *pOffset, br_vector3 *pTrans);
|
||||
void AdjustPedestrian(int pIndex, int pAction_index, int pFrame_index, int pHit_points, int pDone_initial, tU16 pParent, br_actor* pParent_actor, float pSpin_period, br_scalar pJump_magnitude, br_vector3* pOffset, br_vector3* pTrans);
|
||||
|
||||
// Offset: 25808
|
||||
// Size: 194
|
||||
// EAX: pFirst_vertex
|
||||
// EDX: pPoint
|
||||
void SquirtPathVertex(br_vertex *pFirst_vertex, br_vector3 *pPoint);
|
||||
void SquirtPathVertex(br_vertex* pFirst_vertex, br_vector3* pPoint);
|
||||
|
||||
// Offset: 26004
|
||||
// Size: 92
|
||||
|
|
@ -225,13 +229,13 @@ void ResetAllPedestrians();
|
|||
// Offset: 26096
|
||||
// Size: 476
|
||||
// EAX: pPedestrian
|
||||
void GroundPedestrian(tPedestrian_data *pPedestrian);
|
||||
void GroundPedestrian(tPedestrian_data* pPedestrian);
|
||||
|
||||
// Offset: 26572
|
||||
// Size: 483
|
||||
// EAX: pPedestrian
|
||||
// EDX: pAnimate
|
||||
void RevivePedestrian(tPedestrian_data *pPedestrian, int pAnimate);
|
||||
void RevivePedestrian(tPedestrian_data* pPedestrian, int pAnimate);
|
||||
|
||||
// Offset: 27056
|
||||
// Size: 1078
|
||||
|
|
@ -250,7 +254,7 @@ int GetPedCount();
|
|||
// Size: 260
|
||||
// EAX: pIndex
|
||||
// EDX: pPos
|
||||
int GetPedPosition(int pIndex, br_vector3 *pPos);
|
||||
int GetPedPosition(int pIndex, br_vector3* pPos);
|
||||
|
||||
// Offset: 28648
|
||||
// Size: 2930
|
||||
|
|
@ -258,7 +262,7 @@ int GetPedPosition(int pIndex, br_vector3 *pPos);
|
|||
// EDX: pInstructions
|
||||
// EBX: pInstruc_count
|
||||
// ECX: pInit_instruc
|
||||
void CreatePedestrian(FILE *pG, tPedestrian_instruction *pInstructions, int pInstruc_count, int pInit_instruc, int pRef_num, int pForce_read);
|
||||
void CreatePedestrian(FILE* pG, tPedestrian_instruction* pInstructions, int pInstruc_count, int pInit_instruc, int pRef_num, int pForce_read);
|
||||
|
||||
// Offset: 31580
|
||||
// Size: 73
|
||||
|
|
@ -277,14 +281,14 @@ void ResetPedMaterial();
|
|||
// EAX: pF
|
||||
// EDX: pSubs_count
|
||||
// EBX: pSubs_array
|
||||
void LoadInPedestrians(FILE *pF, int pSubs_count, tPed_subs *pSubs_array);
|
||||
void LoadInPedestrians(FILE* pF, int pSubs_count, tPed_subs* pSubs_array);
|
||||
|
||||
// Offset: 33608
|
||||
// Size: 1313
|
||||
// EAX: pInstructions
|
||||
// EDX: pInstruc_count
|
||||
// EBX: pInit_instruc
|
||||
br_actor* BuildPedPaths(tPedestrian_instruction *pInstructions, int pInstruc_count, int pInit_instruc);
|
||||
br_actor* BuildPedPaths(tPedestrian_instruction* pInstructions, int pInstruc_count, int pInit_instruc);
|
||||
|
||||
// Offset: 34924
|
||||
// Size: 1161
|
||||
|
|
@ -421,7 +425,7 @@ void DropInitPedPointAir();
|
|||
|
||||
// Offset: 38452
|
||||
// Size: 77
|
||||
br_uint_32 KillActorsModel(br_actor *pActor, void *pArg);
|
||||
br_uint_32 KillActorsModel(br_actor* pActor, void* pArg);
|
||||
|
||||
// Offset: 38532
|
||||
// Size: 154
|
||||
|
|
@ -431,7 +435,7 @@ void DisposePedPaths();
|
|||
// Size: 417
|
||||
// EAX: pPed_index
|
||||
// EDX: pPoint_index
|
||||
void GetPedPos(int *pPed_index, int *pPoint_index);
|
||||
void GetPedPos(int* pPed_index, int* pPoint_index);
|
||||
|
||||
// Offset: 39108
|
||||
// Size: 105
|
||||
|
|
@ -471,7 +475,7 @@ void DoPedReport();
|
|||
// EDX: pDepth_buffer
|
||||
// EBX: pCamera
|
||||
// ECX: pCamera_to_world
|
||||
void RenderProximityRays(br_pixelmap *pRender_screen, br_pixelmap *pDepth_buffer, br_actor *pCamera, br_matrix34 *pCamera_to_world, tU32 pTime);
|
||||
void RenderProximityRays(br_pixelmap* pRender_screen, br_pixelmap* pDepth_buffer, br_actor* pCamera, br_matrix34* pCamera_to_world, tU32 pTime);
|
||||
|
||||
// Offset: 42256
|
||||
// Size: 145
|
||||
|
|
@ -486,7 +490,7 @@ void AdjustProxRay(int pRay_index, tU16 pCar_ID, tU16 pPed_index, tU32 pTime);
|
|||
// EAX: pContents
|
||||
// EDX: pMessage
|
||||
// EBX: pReceive_time
|
||||
void ReceivedPedestrian(tNet_contents *pContents, tNet_message *pMessage, tU32 pReceive_time);
|
||||
void ReceivedPedestrian(tNet_contents* pContents, tNet_message* pMessage, tU32 pReceive_time);
|
||||
|
||||
// Offset: 43604
|
||||
// Size: 115
|
||||
|
|
|
|||
|
|
@ -1,30 +1,30 @@
|
|||
#include "utility.h"
|
||||
|
||||
#include "loading.h"
|
||||
#include "errors.h"
|
||||
#include "dossys.h"
|
||||
#include "errors.h"
|
||||
#include "globvars.h"
|
||||
#include "sound.h"
|
||||
#include "loading.h"
|
||||
#include "network.h"
|
||||
#include "sound.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
// Added >>
|
||||
#define MIN_SERVICE_INTERVAL 200
|
||||
// <<
|
||||
|
||||
tU32 gLong_key[] = { 0x5F991B6C, 0x135FCDB9, 0x0E2004CB, 0x0EA11C5E };
|
||||
tU32 gOther_long_key[] = { 0x26D6A867, 0x1B45DDB6, 0x13227E32, 0x3794C215 };
|
||||
tU32 gLong_key[] = { 0x5F991B6C, 0x135FCDB9, 0x0E2004CB, 0x0EA11C5E };
|
||||
tU32 gOther_long_key[] = { 0x26D6A867, 0x1B45DDB6, 0x13227E32, 0x3794C215 };
|
||||
|
||||
char *gMisc_strings[250];
|
||||
char* gMisc_strings[250];
|
||||
int gIn_check_quit;
|
||||
tU32 gLost_time;
|
||||
int gEncryption_method = 1;
|
||||
br_pixelmap *g16bit_palette;
|
||||
br_pixelmap *gSource_for_16bit_palette;
|
||||
int gEncryption_method = 0;
|
||||
br_pixelmap* g16bit_palette;
|
||||
br_pixelmap* gSource_for_16bit_palette;
|
||||
|
||||
// Offset: 0
|
||||
// Size: 144
|
||||
|
|
@ -32,21 +32,90 @@ int CheckQuit() {
|
|||
int got_as_far_as_verify;
|
||||
}
|
||||
|
||||
// Offset: 144
|
||||
// Size: 50
|
||||
double sqr(double pN) {
|
||||
}
|
||||
|
||||
// Offset: 196
|
||||
// Size: 542
|
||||
// EAX: pS
|
||||
void EncodeLine(char *pS) {
|
||||
void EncodeLine(char* pS) {
|
||||
int len;
|
||||
int seed;
|
||||
int i;
|
||||
char *key;
|
||||
char* key;
|
||||
unsigned char c;
|
||||
FILE *test;
|
||||
FILE* test;
|
||||
|
||||
tPath_name test_path;
|
||||
char temp[256];
|
||||
|
||||
len = strlen(pS);
|
||||
key = (char*)gLong_key;
|
||||
if (!gEncryption_method) {
|
||||
strcpy(test_path, gApplication_path);
|
||||
strcat(test_path, gDir_separator);
|
||||
strcat(test_path, "GENERAL.TXT");
|
||||
|
||||
test = fopen(test_path, "rt");
|
||||
if (test) {
|
||||
fgets(temp, 256, test);
|
||||
if (temp[0] != '@') {
|
||||
gEncryption_method = 2;
|
||||
} else {
|
||||
gEncryption_method = 1;
|
||||
EncodeLine(&temp[1]);
|
||||
temp[7] = '\0';
|
||||
if (strcmp(&temp[1], "0.01\t\t") != 0) {
|
||||
gEncryption_method = 2;
|
||||
}
|
||||
}
|
||||
fclose(test);
|
||||
} else {
|
||||
gEncryption_method = 2;
|
||||
}
|
||||
}
|
||||
while (len > 0 && (pS[len - 1] == '\r' || pS[len - 1] == '\n')) {
|
||||
--len;
|
||||
pS[len] = 0;
|
||||
}
|
||||
|
||||
seed = len % 16;
|
||||
for (i = 0; i < len; i++) {
|
||||
c = pS[i];
|
||||
if (i >= 2) {
|
||||
if (pS[i - 1] == '/' && pS[i - 2] == '/') {
|
||||
key = (char*)gOther_long_key;
|
||||
}
|
||||
}
|
||||
if (gEncryption_method == 1) {
|
||||
if (c == '\t') {
|
||||
c = 0x80;
|
||||
}
|
||||
c -= 0x20;
|
||||
if (!(c & 0x80)) {
|
||||
c = (c ^ key[seed]) & 0x7f;
|
||||
c += 0x20;
|
||||
}
|
||||
seed += 7;
|
||||
seed = seed % 16;
|
||||
|
||||
if (c == 0x80) {
|
||||
c = '\t';
|
||||
}
|
||||
} else {
|
||||
if (c == '\t') {
|
||||
c = 0x9f;
|
||||
}
|
||||
c -= 0x20;
|
||||
c = (c ^ key[seed]) & 0x7f;
|
||||
c += 0x20;
|
||||
|
||||
seed += 7;
|
||||
seed = seed % 16;
|
||||
|
||||
if (c == 0x9f) {
|
||||
c = '\t';
|
||||
}
|
||||
}
|
||||
pS[i] = c;
|
||||
}
|
||||
}
|
||||
|
||||
// Offset: 740
|
||||
|
|
@ -94,31 +163,29 @@ br_scalar SRandomPosNeg(br_scalar pN) {
|
|||
// Size: 506
|
||||
// EAX: pF
|
||||
// EDX: pS
|
||||
char* GetALineWithNoPossibleService(FILE *pF, /*unsigned*/ char *pS) {
|
||||
char* GetALineWithNoPossibleService(FILE* pF, /*unsigned*/ char* pS) {
|
||||
// JeffH removed "signed' to avoid compiler warnings..
|
||||
/*signed*/ char *result;
|
||||
/*signed*/ char* result;
|
||||
/*signed*/ char s[256];
|
||||
int ch;
|
||||
int len;
|
||||
int i;
|
||||
|
||||
do
|
||||
{
|
||||
do {
|
||||
result = fgets(s, 256, pF);
|
||||
if ( !result ) {
|
||||
if (!result) {
|
||||
break;
|
||||
}
|
||||
if ( s[0] == '@' )
|
||||
{
|
||||
|
||||
if (s[0] == '@') {
|
||||
EncodeLine(&s[1]);
|
||||
goto LABEL_5;
|
||||
}
|
||||
while ( 1 )
|
||||
{
|
||||
if ( s[0] != ' ' && s[0] != '\t' ){
|
||||
while (1) {
|
||||
if (s[0] != ' ' && s[0] != '\t') {
|
||||
break;
|
||||
}
|
||||
LABEL_5:
|
||||
LABEL_5:
|
||||
len = strlen(s);
|
||||
memmove(s, &s[1], len);
|
||||
}
|
||||
|
|
@ -129,10 +196,10 @@ LABEL_5:
|
|||
break;
|
||||
}
|
||||
}
|
||||
if ( ch != -1 )
|
||||
if (ch != -1) {
|
||||
ungetc(ch, pF);
|
||||
}
|
||||
while (!isalnum(s[0])
|
||||
}
|
||||
} while (!isalnum(s[0])
|
||||
&& s[0] != '-'
|
||||
&& s[0] != '.'
|
||||
&& s[0] != '!'
|
||||
|
|
@ -140,14 +207,14 @@ LABEL_5:
|
|||
&& s[0] != '('
|
||||
&& s[0] != '\''
|
||||
&& s[0] != '\"'
|
||||
&& s[0] >= 0 );
|
||||
&& s[0] >= 0);
|
||||
|
||||
if (result) {
|
||||
len = strlen(result);
|
||||
if ( len != 0 && (result[len - 1] == '\r' || result[len - 1] == '\n' )) {
|
||||
if (len != 0 && (result[len - 1] == '\r' || result[len - 1] == '\n')) {
|
||||
result[len - 1] = 0;
|
||||
}
|
||||
if ( len != 1 && (result[len - 2] == '\r' || result[len - 2] == '\n' )) {
|
||||
if (len != 1 && (result[len - 2] == '\r' || result[len - 2] == '\n')) {
|
||||
result[len - 2] = 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -165,7 +232,7 @@ LABEL_5:
|
|||
// Size: 60
|
||||
// EAX: pF
|
||||
// EDX: pS
|
||||
char* GetALineAndDontArgue(FILE *pF, char *pS) {
|
||||
char* GetALineAndDontArgue(FILE* pF, char* pS) {
|
||||
PossibleService(pF, pS);
|
||||
return GetALineWithNoPossibleService(pF, pS);
|
||||
}
|
||||
|
|
@ -175,8 +242,10 @@ char* GetALineAndDontArgue(FILE *pF, char *pS) {
|
|||
// EAX: pDestn_str
|
||||
// EDX: pStr_1
|
||||
// EBX: pStr_2
|
||||
void PathCat(char *pDestn_str, char *pStr_1, char *pStr_2) {
|
||||
strcpy(pDestn_str, pStr_1);
|
||||
void PathCat(char* pDestn_str, char* pStr_1, char* pStr_2) {
|
||||
if (pDestn_str != pStr_1) { // Added to avoid strcpy overlap checks
|
||||
strcpy(pDestn_str, pStr_1);
|
||||
}
|
||||
if (strlen(pStr_2) != 0) {
|
||||
strcat(pDestn_str, gDir_separator);
|
||||
strcat(pDestn_str, pStr_2);
|
||||
|
|
@ -196,7 +265,7 @@ float tandeg(float pAngle) {
|
|||
// Offset: 2084
|
||||
// Size: 80
|
||||
// EAX: pF
|
||||
tU32 GetFileLength(FILE *pF) {
|
||||
tU32 GetFileLength(FILE* pF) {
|
||||
tU32 the_size;
|
||||
}
|
||||
|
||||
|
|
@ -212,8 +281,8 @@ int BooleanTo1Or0(int pB) {
|
|||
// EDX: pW
|
||||
// EBX: pH
|
||||
// ECX: pPixels
|
||||
br_pixelmap* DRPixelmapAllocate(br_uint_8 pType, br_uint_16 pW, br_uint_16 pH, void *pPixels, int pFlags) {
|
||||
br_pixelmap *the_map;
|
||||
br_pixelmap* DRPixelmapAllocate(br_uint_8 pType, br_uint_16 pW, br_uint_16 pH, void* pPixels, int pFlags) {
|
||||
br_pixelmap* the_map;
|
||||
}
|
||||
|
||||
// Offset: 2348
|
||||
|
|
@ -222,8 +291,8 @@ br_pixelmap* DRPixelmapAllocate(br_uint_8 pType, br_uint_16 pW, br_uint_16 pH, v
|
|||
// EDX: pX
|
||||
// EBX: pY
|
||||
// ECX: pW
|
||||
br_pixelmap* DRPixelmapAllocateSub(br_pixelmap *pPm, br_uint_16 pX, br_uint_16 pY, br_uint_16 pW, br_uint_16 pH) {
|
||||
br_pixelmap *the_map;
|
||||
br_pixelmap* DRPixelmapAllocateSub(br_pixelmap* pPm, br_uint_16 pX, br_uint_16 pY, br_uint_16 pW, br_uint_16 pH) {
|
||||
br_pixelmap* the_map;
|
||||
}
|
||||
|
||||
// Offset: 2468
|
||||
|
|
@ -232,8 +301,8 @@ br_pixelmap* DRPixelmapAllocateSub(br_pixelmap *pPm, br_uint_16 pX, br_uint_16 p
|
|||
// EDX: pMatch_type
|
||||
// EBX: pWidth
|
||||
// ECX: pHeight
|
||||
br_pixelmap* DRPixelmapMatchSized(br_pixelmap *pSrc, tU8 pMatch_type, tS32 pWidth, tS32 pHeight) {
|
||||
br_pixelmap *result;
|
||||
br_pixelmap* DRPixelmapMatchSized(br_pixelmap* pSrc, tU8 pMatch_type, tS32 pWidth, tS32 pHeight) {
|
||||
br_pixelmap* result;
|
||||
}
|
||||
|
||||
// Offset: 2664
|
||||
|
|
@ -242,13 +311,13 @@ br_pixelmap* DRPixelmapMatchSized(br_pixelmap *pSrc, tU8 pMatch_type, tS32 pWidt
|
|||
// EDX: pSrc
|
||||
// EBX: pSrc_width
|
||||
// ECX: pSrc_height
|
||||
void CopyDoubled8BitTo16BitRectangle(br_pixelmap *pDst, br_pixelmap *pSrc, int pSrc_width, int pSrc_height, int pDst_x, int pDst_y, br_pixelmap *pPalette) {
|
||||
void CopyDoubled8BitTo16BitRectangle(br_pixelmap* pDst, br_pixelmap* pSrc, int pSrc_width, int pSrc_height, int pDst_x, int pDst_y, br_pixelmap* pPalette) {
|
||||
int x;
|
||||
int y;
|
||||
tU8 *src_start;
|
||||
tU16 *dst_start0;
|
||||
tU16 *dst_start1;
|
||||
tU16 *palette_entry;
|
||||
tU8* src_start;
|
||||
tU16* dst_start0;
|
||||
tU16* dst_start1;
|
||||
tU16* palette_entry;
|
||||
}
|
||||
|
||||
// Offset: 3024
|
||||
|
|
@ -256,42 +325,42 @@ void CopyDoubled8BitTo16BitRectangle(br_pixelmap *pDst, br_pixelmap *pSrc, int p
|
|||
// EAX: pSrc
|
||||
// EDX: pWidth
|
||||
// EBX: pHeight
|
||||
br_pixelmap* Scale8BitPixelmap(br_pixelmap *pSrc, int pWidth, int pHeight) {
|
||||
br_pixelmap *result;
|
||||
br_pixelmap* Scale8BitPixelmap(br_pixelmap* pSrc, int pWidth, int pHeight) {
|
||||
br_pixelmap* result;
|
||||
int x;
|
||||
int y;
|
||||
tU8 *src_pixels;
|
||||
tU8 *dst_pixels;
|
||||
tU8* src_pixels;
|
||||
tU8* dst_pixels;
|
||||
}
|
||||
|
||||
// Offset: 3288
|
||||
// Size: 390
|
||||
// EAX: pSrc
|
||||
// EDX: pN
|
||||
br_pixelmap* Tile8BitPixelmap(br_pixelmap *pSrc, int pN) {
|
||||
br_pixelmap *result;
|
||||
br_pixelmap* Tile8BitPixelmap(br_pixelmap* pSrc, int pN) {
|
||||
br_pixelmap* result;
|
||||
int new_width;
|
||||
int new_height;
|
||||
int x;
|
||||
int y2;
|
||||
int y;
|
||||
tU8 *src_pixels;
|
||||
tU8 *dst_pixels;
|
||||
tU8* src_pixels;
|
||||
tU8* dst_pixels;
|
||||
}
|
||||
|
||||
// Offset: 3680
|
||||
// Size: 83
|
||||
// EAX: pName
|
||||
// EDX: pList
|
||||
tException_list FindExceptionInList(char *pName, tException_list pList) {
|
||||
tException_list FindExceptionInList(char* pName, tException_list pList) {
|
||||
}
|
||||
|
||||
// Offset: 3764
|
||||
// Size: 492
|
||||
// EAX: pSrc
|
||||
br_pixelmap* PurifiedPixelmap(br_pixelmap *pSrc) {
|
||||
br_pixelmap *intermediate;
|
||||
br_pixelmap *result;
|
||||
br_pixelmap* PurifiedPixelmap(br_pixelmap* pSrc) {
|
||||
br_pixelmap* intermediate;
|
||||
br_pixelmap* result;
|
||||
int new_width;
|
||||
int new_height;
|
||||
tException_list e;
|
||||
|
|
@ -300,8 +369,8 @@ br_pixelmap* PurifiedPixelmap(br_pixelmap *pSrc) {
|
|||
// Offset: 4256
|
||||
// Size: 105
|
||||
// EAX: pFile_name
|
||||
br_pixelmap* DRPixelmapLoad(char *pFile_name) {
|
||||
br_pixelmap *the_map;
|
||||
br_pixelmap* DRPixelmapLoad(char* pFile_name) {
|
||||
br_pixelmap* the_map;
|
||||
}
|
||||
|
||||
// Offset: 4364
|
||||
|
|
@ -309,8 +378,8 @@ br_pixelmap* DRPixelmapLoad(char *pFile_name) {
|
|||
// EAX: pFile_name
|
||||
// EDX: pPixelmaps
|
||||
// EBX: pNum
|
||||
br_uint_32 DRPixelmapLoadMany(char *pFile_name, br_pixelmap **pPixelmaps, br_uint_16 pNum) {
|
||||
br_pixelmap *the_map;
|
||||
br_uint_32 DRPixelmapLoadMany(char* pFile_name, br_pixelmap** pPixelmaps, br_uint_16 pNum) {
|
||||
br_pixelmap* the_map;
|
||||
int number_loaded;
|
||||
int i;
|
||||
}
|
||||
|
|
@ -327,20 +396,20 @@ void WaitFor(tU32 pDelay) {
|
|||
// EAX: pActor
|
||||
// EDX: callback
|
||||
// EBX: arg
|
||||
br_uint_32 DRActorEnumRecurse(br_actor *pActor, br_actor_enum_cbfn *callback, void *arg) {
|
||||
br_uint_32 DRActorEnumRecurse(br_actor* pActor, br_actor_enum_cbfn* callback, void* arg) {
|
||||
br_uint_32 result;
|
||||
}
|
||||
|
||||
// Offset: 4744
|
||||
// Size: 77
|
||||
br_uint_32 CompareActorID(br_actor *pActor, void *pArg) {
|
||||
br_uint_32 CompareActorID(br_actor* pActor, void* pArg) {
|
||||
}
|
||||
|
||||
// Offset: 4824
|
||||
// Size: 60
|
||||
// EAX: pSearch_root
|
||||
// EDX: pName
|
||||
br_actor* DRActorFindRecurse(br_actor *pSearch_root, char *pName) {
|
||||
br_actor* DRActorFindRecurse(br_actor* pSearch_root, char* pName) {
|
||||
}
|
||||
|
||||
// Offset: 4884
|
||||
|
|
@ -349,7 +418,7 @@ br_actor* DRActorFindRecurse(br_actor *pSearch_root, char *pName) {
|
|||
// EDX: pMat
|
||||
// EBX: pCall_back
|
||||
// ECX: pArg
|
||||
br_uint_32 DRActorEnumRecurseWithMat(br_actor *pActor, br_material *pMat, br_uint_32 (*pCall_back)(br_actor*, br_material*, void*), void *pArg) {
|
||||
br_uint_32 DRActorEnumRecurseWithMat(br_actor* pActor, br_material* pMat, br_uint_32 (*pCall_back)(br_actor*, br_material*, void*), void* pArg) {
|
||||
br_uint_32 result;
|
||||
}
|
||||
|
||||
|
|
@ -359,7 +428,7 @@ br_uint_32 DRActorEnumRecurseWithMat(br_actor *pActor, br_material *pMat, br_uin
|
|||
// EDX: pMatrix
|
||||
// EBX: pCall_back
|
||||
// ECX: pArg
|
||||
br_uint_32 DRActorEnumRecurseWithTrans(br_actor *pActor, br_matrix34 *pMatrix, br_uint_32 (*pCall_back)(br_actor*, br_matrix34*, void*), void *pArg) {
|
||||
br_uint_32 DRActorEnumRecurseWithTrans(br_actor* pActor, br_matrix34* pMatrix, br_uint_32 (*pCall_back)(br_actor*, br_matrix34*, void*), void* pArg) {
|
||||
br_uint_32 result;
|
||||
br_matrix34 combined_transform;
|
||||
}
|
||||
|
|
@ -379,32 +448,32 @@ float fsign(float pNumber) {
|
|||
// Size: 210
|
||||
// EAX: pPrefix
|
||||
// EDX: pExtension
|
||||
FILE* OpenUniqueFileB(char *pPrefix, char *pExtension) {
|
||||
FILE* OpenUniqueFileB(char* pPrefix, char* pExtension) {
|
||||
int index;
|
||||
FILE *f;
|
||||
FILE* f;
|
||||
tPath_name the_path;
|
||||
}
|
||||
|
||||
// Offset: 5632
|
||||
// Size: 572
|
||||
// EAX: pF
|
||||
void PrintScreenFile(FILE *pF) {
|
||||
void PrintScreenFile(FILE* pF) {
|
||||
int i;
|
||||
int j;
|
||||
int bit_map_size;
|
||||
int offset;
|
||||
tU8 *pixel_ptr;
|
||||
tU8* pixel_ptr;
|
||||
}
|
||||
|
||||
// Offset: 6204
|
||||
// Size: 554
|
||||
// EAX: pF
|
||||
void PrintScreenFile16(FILE *pF) {
|
||||
void PrintScreenFile16(FILE* pF) {
|
||||
int i;
|
||||
int j;
|
||||
int bit_map_size;
|
||||
int offset;
|
||||
tU8 *pixel_ptr;
|
||||
tU8* pixel_ptr;
|
||||
tU16 pixel;
|
||||
}
|
||||
|
||||
|
|
@ -435,7 +504,7 @@ void AddLostTime(tU32 pLost_time) {
|
|||
// EDX: pStr
|
||||
// EBX: pFudge_colon
|
||||
// ECX: pForce_colon
|
||||
void TimerString(tU32 pTime, char *pStr, int pFudge_colon, int pForce_colon) {
|
||||
void TimerString(tU32 pTime, char* pStr, int pFudge_colon, int pForce_colon) {
|
||||
int seconds;
|
||||
}
|
||||
|
||||
|
|
@ -449,7 +518,7 @@ char* GetMiscString(int pIndex) {
|
|||
// Size: 58
|
||||
// EAX: pIndex
|
||||
// EDX: pStr
|
||||
void GetCopyOfMiscString(int pIndex, char *pStr) {
|
||||
void GetCopyOfMiscString(int pIndex, char* pStr) {
|
||||
}
|
||||
|
||||
// Offset: 7372
|
||||
|
|
@ -457,7 +526,7 @@ void GetCopyOfMiscString(int pIndex, char *pStr) {
|
|||
// EAX: pPeriod
|
||||
// EDX: pLast_change
|
||||
// EBX: pCurrent_state
|
||||
int Flash(tU32 pPeriod, tU32 *pLast_change, int *pCurrent_state) {
|
||||
int Flash(tU32 pPeriod, tU32* pLast_change, int* pCurrent_state) {
|
||||
tU32 the_time;
|
||||
}
|
||||
|
||||
|
|
@ -465,27 +534,27 @@ int Flash(tU32 pPeriod, tU32 *pLast_change, int *pCurrent_state) {
|
|||
// Size: 225
|
||||
// EAX: pDst
|
||||
// EDX: pSrc
|
||||
void MaterialCopy(br_material *pDst, br_material *pSrc) {
|
||||
void MaterialCopy(br_material* pDst, br_material* pSrc) {
|
||||
}
|
||||
|
||||
// Offset: 7716
|
||||
// Size: 139
|
||||
// EAX: pColour_1
|
||||
// EDX: pColour_2
|
||||
double RGBDifferenceSqr(tRGB_colour *pColour_1, tRGB_colour *pColour_2) {
|
||||
double RGBDifferenceSqr(tRGB_colour* pColour_1, tRGB_colour* pColour_2) {
|
||||
}
|
||||
|
||||
// Offset: 7856
|
||||
// Size: 200
|
||||
// EAX: pRGB_colour
|
||||
// EDX: pPalette
|
||||
int FindBestMatch(tRGB_colour *pRGB_colour, br_pixelmap *pPalette) {
|
||||
int FindBestMatch(tRGB_colour* pRGB_colour, br_pixelmap* pPalette) {
|
||||
int n;
|
||||
int near_c;
|
||||
double min_d;
|
||||
double d;
|
||||
tRGB_colour trial_RGB;
|
||||
br_colour *dp;
|
||||
br_colour* dp;
|
||||
}
|
||||
|
||||
// Offset: 8056
|
||||
|
|
@ -494,7 +563,7 @@ int FindBestMatch(tRGB_colour *pRGB_colour, br_pixelmap *pPalette) {
|
|||
// EDX: pR
|
||||
// EBX: pG
|
||||
// ECX: pB
|
||||
void BuildShadeTablePath(char *pThe_path, int pR, int pG, int pB) {
|
||||
void BuildShadeTablePath(char* pThe_path, int pR, int pG, int pB) {
|
||||
char s[32];
|
||||
}
|
||||
|
||||
|
|
@ -513,7 +582,7 @@ br_pixelmap* LoadGeneratedShadeTable(int pR, int pG, int pB) {
|
|||
// EDX: pR
|
||||
// EBX: pG
|
||||
// ECX: pB
|
||||
void SaveGeneratedShadeTable(br_pixelmap *pThe_table, int pR, int pG, int pB) {
|
||||
void SaveGeneratedShadeTable(br_pixelmap* pThe_table, int pR, int pG, int pB) {
|
||||
char the_path[256];
|
||||
}
|
||||
|
||||
|
|
@ -523,7 +592,7 @@ void SaveGeneratedShadeTable(br_pixelmap *pThe_table, int pR, int pG, int pB) {
|
|||
// EDX: pPalette
|
||||
// EBX: pRed_mix
|
||||
// ECX: pGreen_mix
|
||||
br_pixelmap* GenerateShadeTable(int pHeight, br_pixelmap *pPalette, int pRed_mix, int pGreen_mix, int pBlue_mix, float pQuarter, float pHalf, float pThree_quarter) {
|
||||
br_pixelmap* GenerateShadeTable(int pHeight, br_pixelmap* pPalette, int pRed_mix, int pGreen_mix, int pBlue_mix, float pQuarter, float pHalf, float pThree_quarter) {
|
||||
}
|
||||
|
||||
// Offset: 8556
|
||||
|
|
@ -532,14 +601,14 @@ br_pixelmap* GenerateShadeTable(int pHeight, br_pixelmap *pPalette, int pRed_mix
|
|||
// EDX: pPalette
|
||||
// EBX: pRed_mix
|
||||
// ECX: pGreen_mix
|
||||
br_pixelmap* GenerateDarkenedShadeTable(int pHeight, br_pixelmap *pPalette, int pRed_mix, int pGreen_mix, int pBlue_mix, float pQuarter, float pHalf, float pThree_quarter, br_scalar pDarken) {
|
||||
br_pixelmap *the_table;
|
||||
br_pixelmap* GenerateDarkenedShadeTable(int pHeight, br_pixelmap* pPalette, int pRed_mix, int pGreen_mix, int pBlue_mix, float pQuarter, float pHalf, float pThree_quarter, br_scalar pDarken) {
|
||||
br_pixelmap* the_table;
|
||||
tRGB_colour the_RGB;
|
||||
tRGB_colour new_RGB;
|
||||
tRGB_colour ref_col;
|
||||
br_colour *cp;
|
||||
char *tab_ptr;
|
||||
char *shade_ptr;
|
||||
br_colour* cp;
|
||||
char* tab_ptr;
|
||||
char* shade_ptr;
|
||||
double f_i;
|
||||
double f_total_minus_1;
|
||||
double ratio1;
|
||||
|
|
@ -570,7 +639,7 @@ void PossibleService() {
|
|||
// EAX: pA
|
||||
// EDX: pB
|
||||
// EBX: pC
|
||||
void DRMatrix34TApplyP(br_vector3 *pA, br_vector3 *pB, br_matrix34 *pC) {
|
||||
void DRMatrix34TApplyP(br_vector3* pA, br_vector3* pB, br_matrix34* pC) {
|
||||
br_scalar t1;
|
||||
br_scalar t2;
|
||||
br_scalar t3;
|
||||
|
|
@ -580,8 +649,8 @@ void DRMatrix34TApplyP(br_vector3 *pA, br_vector3 *pB, br_matrix34 *pC) {
|
|||
// Size: 132
|
||||
// EAX: pPal
|
||||
// EDX: pEntry
|
||||
tU16 PaletteEntry16Bit(br_pixelmap *pPal, int pEntry) {
|
||||
tU32 *src_entry;
|
||||
tU16 PaletteEntry16Bit(br_pixelmap* pPal, int pEntry) {
|
||||
tU32* src_entry;
|
||||
int red;
|
||||
int green;
|
||||
int blue;
|
||||
|
|
@ -590,8 +659,8 @@ tU16 PaletteEntry16Bit(br_pixelmap *pPal, int pEntry) {
|
|||
// Offset: 9736
|
||||
// Size: 210
|
||||
// EAX: pSrc
|
||||
br_pixelmap* PaletteOf16Bits(br_pixelmap *pSrc) {
|
||||
tU16 *dst_entry;
|
||||
br_pixelmap* PaletteOf16Bits(br_pixelmap* pSrc) {
|
||||
tU16* dst_entry;
|
||||
int value;
|
||||
}
|
||||
|
||||
|
|
@ -600,12 +669,12 @@ br_pixelmap* PaletteOf16Bits(br_pixelmap *pSrc) {
|
|||
// EAX: pDst
|
||||
// EDX: pSrc
|
||||
// EBX: pPalette
|
||||
void Copy8BitTo16Bit(br_pixelmap *pDst, br_pixelmap *pSrc, br_pixelmap *pPalette) {
|
||||
void Copy8BitTo16Bit(br_pixelmap* pDst, br_pixelmap* pSrc, br_pixelmap* pPalette) {
|
||||
int x;
|
||||
int y;
|
||||
tU8 *src_start;
|
||||
tU16 *dst_start;
|
||||
tU16 *palette_entry;
|
||||
tU8* src_start;
|
||||
tU16* dst_start;
|
||||
tU16* palette_entry;
|
||||
}
|
||||
|
||||
// Offset: 10168
|
||||
|
|
@ -614,12 +683,12 @@ void Copy8BitTo16Bit(br_pixelmap *pDst, br_pixelmap *pSrc, br_pixelmap *pPalette
|
|||
// EDX: pDst_x
|
||||
// EBX: pDst_y
|
||||
// ECX: pSrc
|
||||
void Copy8BitTo16BitRectangle(br_pixelmap *pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap *pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, br_pixelmap *pPalette) {
|
||||
void Copy8BitTo16BitRectangle(br_pixelmap* pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap* pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, br_pixelmap* pPalette) {
|
||||
int x;
|
||||
int y;
|
||||
tU8 *src_start;
|
||||
tU16 *dst_start;
|
||||
tU16 *palette_entry;
|
||||
tU8* src_start;
|
||||
tU16* dst_start;
|
||||
tU16* palette_entry;
|
||||
}
|
||||
|
||||
// Offset: 10728
|
||||
|
|
@ -628,12 +697,12 @@ void Copy8BitTo16BitRectangle(br_pixelmap *pDst, tS16 pDst_x, tS16 pDst_y, br_pi
|
|||
// EDX: pDst_x
|
||||
// EBX: pDst_y
|
||||
// ECX: pSrc
|
||||
void Copy8BitTo16BitRectangleWithTransparency(br_pixelmap *pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap *pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, br_pixelmap *pPalette) {
|
||||
void Copy8BitTo16BitRectangleWithTransparency(br_pixelmap* pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap* pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, br_pixelmap* pPalette) {
|
||||
int x;
|
||||
int y;
|
||||
tU8 *src_start;
|
||||
tU16 *dst_start;
|
||||
tU16 *palette_entry;
|
||||
tU8* src_start;
|
||||
tU16* dst_start;
|
||||
tU16* palette_entry;
|
||||
}
|
||||
|
||||
// Offset: 11248
|
||||
|
|
@ -642,12 +711,12 @@ void Copy8BitTo16BitRectangleWithTransparency(br_pixelmap *pDst, tS16 pDst_x, tS
|
|||
// EDX: pDst_x
|
||||
// EBX: pDst_y
|
||||
// ECX: pSrc
|
||||
void Copy8BitToOnscreen16BitRectangleWithTransparency(br_pixelmap *pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap *pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, br_pixelmap *pPalette) {
|
||||
void Copy8BitToOnscreen16BitRectangleWithTransparency(br_pixelmap* pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap* pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, br_pixelmap* pPalette) {
|
||||
int x;
|
||||
int y;
|
||||
tU8 *src_start;
|
||||
tU16 *dst_start;
|
||||
tU16 *palette_entry;
|
||||
tU8* src_start;
|
||||
tU16* dst_start;
|
||||
tU16* palette_entry;
|
||||
}
|
||||
|
||||
// Offset: 11528
|
||||
|
|
@ -656,12 +725,12 @@ void Copy8BitToOnscreen16BitRectangleWithTransparency(br_pixelmap *pDst, tS16 pD
|
|||
// EDX: pDst_x
|
||||
// EBX: pDst_y
|
||||
// ECX: pSrc
|
||||
void Copy8BitRectangleTo16BitRhombusWithTransparency(br_pixelmap *pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap *pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, tX1616 pShear, br_pixelmap *pPalette) {
|
||||
void Copy8BitRectangleTo16BitRhombusWithTransparency(br_pixelmap* pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap* pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, tX1616 pShear, br_pixelmap* pPalette) {
|
||||
int x;
|
||||
int y;
|
||||
tU8 *src_start;
|
||||
tU16 *dst_start;
|
||||
tU16 *palette_entry;
|
||||
tU8* src_start;
|
||||
tU16* dst_start;
|
||||
tU16* palette_entry;
|
||||
tX1616 total_shear;
|
||||
tS16 sheared_x;
|
||||
tS16 clipped_src_x;
|
||||
|
|
@ -674,14 +743,14 @@ void Copy8BitRectangleTo16BitRhombusWithTransparency(br_pixelmap *pDst, tS16 pDs
|
|||
// EDX: dx
|
||||
// EBX: dy
|
||||
// ECX: src
|
||||
void DRPixelmapRectangleCopy(br_pixelmap *dst, br_int_16 dx, br_int_16 dy, br_pixelmap *src, br_int_16 sx, br_int_16 sy, br_uint_16 w, br_uint_16 h) {
|
||||
void DRPixelmapRectangleCopy(br_pixelmap* dst, br_int_16 dx, br_int_16 dy, br_pixelmap* src, br_int_16 sx, br_int_16 sy, br_uint_16 w, br_uint_16 h) {
|
||||
}
|
||||
|
||||
// Offset: 12308
|
||||
// Size: 107
|
||||
// EAX: dst
|
||||
// EDX: src
|
||||
void DRPixelmapCopy(br_pixelmap *dst, br_pixelmap *src) {
|
||||
void DRPixelmapCopy(br_pixelmap* dst, br_pixelmap* src) {
|
||||
}
|
||||
|
||||
// Offset: 12416
|
||||
|
|
@ -690,14 +759,14 @@ void DRPixelmapCopy(br_pixelmap *dst, br_pixelmap *src) {
|
|||
// EDX: x
|
||||
// EBX: y
|
||||
// ECX: w
|
||||
void DRPixelmapRectangleFill(br_pixelmap *dst, br_int_16 x, br_int_16 y, br_uint_16 w, br_uint_16 h, br_uint_32 colour) {
|
||||
void DRPixelmapRectangleFill(br_pixelmap* dst, br_int_16 x, br_int_16 y, br_uint_16 w, br_uint_16 h, br_uint_32 colour) {
|
||||
}
|
||||
|
||||
// Offset: 12500
|
||||
// Size: 156
|
||||
// EAX: pPoint
|
||||
// EDX: pNormal
|
||||
int NormalSideOfPlane(br_vector3 *pPoint, br_vector3 *pNormal, br_scalar pD) {
|
||||
int NormalSideOfPlane(br_vector3* pPoint, br_vector3* pNormal, br_scalar pD) {
|
||||
br_scalar numer;
|
||||
br_scalar denom;
|
||||
}
|
||||
|
|
@ -705,8 +774,8 @@ int NormalSideOfPlane(br_vector3 *pPoint, br_vector3 *pNormal, br_scalar pD) {
|
|||
// Offset: 12656
|
||||
// Size: 351
|
||||
// EAX: pMaterial
|
||||
br_material* DRMaterialClone(br_material *pMaterial) {
|
||||
br_material *the_material;
|
||||
br_material* DRMaterialClone(br_material* pMaterial) {
|
||||
br_material* the_material;
|
||||
char s[256];
|
||||
static int name_suffix;
|
||||
}
|
||||
|
|
@ -714,8 +783,8 @@ br_material* DRMaterialClone(br_material *pMaterial) {
|
|||
// Offset: 13008
|
||||
// Size: 93
|
||||
// EAX: s
|
||||
void StripCR(char *s) {
|
||||
char *pos;
|
||||
void StripCR(char* s) {
|
||||
char* pos;
|
||||
pos = s;
|
||||
while (*pos != 0) {
|
||||
if (*pos == '\r' || *pos == '\n') {
|
||||
|
|
@ -728,42 +797,39 @@ void StripCR(char *s) {
|
|||
|
||||
// Offset: 13104
|
||||
// Size: 132
|
||||
void SubsStringJob(char *pStr, ...) {
|
||||
char *sub_str;
|
||||
void SubsStringJob(char* pStr, ...) {
|
||||
char* sub_str;
|
||||
char temp_str[256];
|
||||
char *sub_pt;
|
||||
char* sub_pt;
|
||||
va_list ap;
|
||||
}
|
||||
|
||||
// Offset: 13236
|
||||
// Size: 454
|
||||
// EAX: pS
|
||||
void DecodeLine2(char *pS) {
|
||||
void DecodeLine2(char* pS) {
|
||||
int len;
|
||||
int seed;
|
||||
int i;
|
||||
unsigned char c;
|
||||
char *key;
|
||||
char* key;
|
||||
|
||||
len = strlen(pS);
|
||||
key = (char*)gLong_key;
|
||||
while ( len > 0 && (pS[len - 1] == 13 || pS[len - 1] == 10))
|
||||
{
|
||||
while (len > 0 && (pS[len - 1] == 13 || pS[len - 1] == 10)) {
|
||||
--len;
|
||||
pS[len] = 0;
|
||||
}
|
||||
seed = len % 16;
|
||||
for ( i = 0; i < len; i++)
|
||||
{
|
||||
for (i = 0; i < len; i++) {
|
||||
c = pS[i];
|
||||
if (i >= 2) {
|
||||
if (pS[i - 1] == '/' && pS[i - 2] == '/') {
|
||||
key = (char*)gOther_long_key;
|
||||
}
|
||||
}
|
||||
if (gEncryption_method == 1)
|
||||
{
|
||||
if ( c == '\t' ) {
|
||||
if (gEncryption_method == 1) {
|
||||
if (c == '\t') {
|
||||
c = 0x80;
|
||||
}
|
||||
c -= 0x20;
|
||||
|
|
@ -774,11 +840,10 @@ void DecodeLine2(char *pS) {
|
|||
seed += 7;
|
||||
seed = seed % 16;
|
||||
|
||||
if ( c == 0x80 ) {
|
||||
if (c == 0x80) {
|
||||
c = '\t';
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
if (c == '\t') {
|
||||
c = 0x9f;
|
||||
}
|
||||
|
|
@ -789,7 +854,7 @@ void DecodeLine2(char *pS) {
|
|||
seed += 7;
|
||||
seed = seed % 16;
|
||||
|
||||
if ( c == 0x9f ) {
|
||||
if (c == 0x9f) {
|
||||
c = '\t';
|
||||
}
|
||||
}
|
||||
|
|
@ -800,37 +865,33 @@ void DecodeLine2(char *pS) {
|
|||
// Offset: 13692
|
||||
// Size: 304
|
||||
// EAX: pS
|
||||
void EncodeLine2(char *pS) {
|
||||
void EncodeLine2(char* pS) {
|
||||
int len;
|
||||
int seed;
|
||||
int i;
|
||||
int count;
|
||||
unsigned char c;
|
||||
char *key;
|
||||
char* key;
|
||||
|
||||
len = strlen(pS);
|
||||
count = 0;
|
||||
key = (char*)gLong_key;
|
||||
while ( len > 0 && (pS[len - 1] == 13 || pS[len - 1] == 10))
|
||||
{
|
||||
while (len > 0 && (pS[len - 1] == 13 || pS[len - 1] == 10)) {
|
||||
--len;
|
||||
pS[len] = 0;
|
||||
}
|
||||
|
||||
seed = len % 16;
|
||||
|
||||
for ( i = 0; i < len; ++pS )
|
||||
{
|
||||
if ( count == 2 )
|
||||
for (i = 0; i < len; ++pS) {
|
||||
if (count == 2)
|
||||
key = (char*)gOther_long_key;
|
||||
if ( *pS == '/' )
|
||||
{
|
||||
if (*pS == '/') {
|
||||
++count;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
count = 0;
|
||||
}
|
||||
if ( *pS == '\t' ) {
|
||||
if (*pS == '\t') {
|
||||
*pS = 0x80;
|
||||
}
|
||||
c = *pS - 0x20;
|
||||
|
|
@ -841,7 +902,7 @@ void EncodeLine2(char *pS) {
|
|||
seed += 7;
|
||||
seed = seed % 16;
|
||||
|
||||
if ( c == 0x80 ) {
|
||||
if (c == 0x80) {
|
||||
c = '\t';
|
||||
}
|
||||
*pS = c;
|
||||
|
|
@ -852,13 +913,13 @@ void EncodeLine2(char *pS) {
|
|||
// Offset: 13996
|
||||
// Size: 553
|
||||
// EAX: pThe_path
|
||||
void EncodeFile(char *pThe_path) {
|
||||
FILE *f;
|
||||
FILE *d;
|
||||
void EncodeFile(char* pThe_path) {
|
||||
FILE* f;
|
||||
FILE* d;
|
||||
char line[257];
|
||||
char new_file[256];
|
||||
char *s;
|
||||
char *result;
|
||||
char* s;
|
||||
char* result;
|
||||
int ch;
|
||||
int decode;
|
||||
int len;
|
||||
|
|
@ -908,7 +969,7 @@ void EncodeFile(char *pThe_path) {
|
|||
}
|
||||
|
||||
line[0] = '@';
|
||||
fputs(&line[decode*2], d);
|
||||
fputs(&line[decode * 2], d);
|
||||
count = -1;
|
||||
ch = fgetc(f);
|
||||
while (ch == '\r' || ch == '\n') {
|
||||
|
|
@ -936,7 +997,7 @@ void EncodeFile(char *pThe_path) {
|
|||
// Offset: 14552
|
||||
// Size: 513
|
||||
// EAX: pThe_path
|
||||
void EncodeFileWrapper (char *pThe_path) {
|
||||
void EncodeFileWrapper(char* pThe_path) {
|
||||
int len = strlen(pThe_path);
|
||||
|
||||
if (strcmp(&pThe_path[len - 4], ".TXT") == 0) {
|
||||
|
|
@ -985,14 +1046,14 @@ void EncodeFileWrapper (char *pThe_path) {
|
|||
// Offset: 15068
|
||||
// Size: 72
|
||||
// EAX: pThe_path
|
||||
void EncodeAllFilesInDirectory(char *pThe_path) {
|
||||
void EncodeAllFilesInDirectory(char* pThe_path) {
|
||||
char s[256];
|
||||
}
|
||||
|
||||
// Offset: 15140
|
||||
// Size: 89
|
||||
// EAX: pF
|
||||
void SkipNLines(FILE *pF) {
|
||||
void SkipNLines(FILE* pF) {
|
||||
int i;
|
||||
int count;
|
||||
char s[256];
|
||||
|
|
@ -1002,7 +1063,7 @@ void SkipNLines(FILE *pF) {
|
|||
// Size: 118
|
||||
// EAX: p1
|
||||
// EDX: p2
|
||||
int DRStricmp(char *p1, char *p2) {
|
||||
int DRStricmp(char* p1, char* p2) {
|
||||
int val;
|
||||
}
|
||||
|
||||
|
|
@ -1010,10 +1071,10 @@ int DRStricmp(char *p1, char *p2) {
|
|||
// Size: 559
|
||||
// EAX: pArray
|
||||
// EDX: pCount
|
||||
void GlorifyMaterial(br_material **pArray, int pCount) {
|
||||
void GlorifyMaterial(br_material** pArray, int pCount) {
|
||||
int i;
|
||||
int c;
|
||||
br_pixelmap *big_tile;
|
||||
br_pixelmap* big_tile;
|
||||
tException_list e;
|
||||
}
|
||||
|
||||
|
|
@ -1021,32 +1082,32 @@ void GlorifyMaterial(br_material **pArray, int pCount) {
|
|||
// Size: 178
|
||||
// EAX: pArray
|
||||
// EDX: pN
|
||||
void WhitenVertexRGB(br_model **pArray, int pN) {
|
||||
void WhitenVertexRGB(br_model** pArray, int pN) {
|
||||
int m;
|
||||
int v;
|
||||
br_vertex *vertex;
|
||||
br_vertex* vertex;
|
||||
}
|
||||
|
||||
// Offset: 16092
|
||||
// Size: 239
|
||||
// EAX: pPalette
|
||||
void NobbleNonzeroBlacks(br_pixelmap *pPalette) {
|
||||
void NobbleNonzeroBlacks(br_pixelmap* pPalette) {
|
||||
tU32 red;
|
||||
tU32 green;
|
||||
tU32 blue;
|
||||
tU32 value;
|
||||
tU32 *palette_entry;
|
||||
tU32* palette_entry;
|
||||
tU32 frobbed;
|
||||
}
|
||||
|
||||
// Offset: 16332
|
||||
// Size: 55
|
||||
// EAX: pThe_path
|
||||
int PDCheckDriveExists(char *pThe_path) {
|
||||
int PDCheckDriveExists(char* pThe_path) {
|
||||
|
||||
// Added: force unix dir separator for now >>
|
||||
char *rep = pThe_path;
|
||||
while((rep = strchr(rep, '\\')) != NULL) {
|
||||
char* rep = pThe_path;
|
||||
while ((rep = strchr(rep, '\\')) != NULL) {
|
||||
*rep++ = '/';
|
||||
}
|
||||
// <<
|
||||
|
|
@ -1060,28 +1121,28 @@ int PDCheckDriveExists(char *pThe_path) {
|
|||
// Offset: 16388
|
||||
// Size: 102
|
||||
// EAX: pPrims
|
||||
int OpacityInPrims(br_token_value *pPrims) {
|
||||
int OpacityInPrims(br_token_value* pPrims) {
|
||||
}
|
||||
|
||||
// Offset: 16492
|
||||
// Size: 97
|
||||
// EAX: pMaterial
|
||||
int AlreadyBlended(br_material *pMaterial) {
|
||||
int AlreadyBlended(br_material* pMaterial) {
|
||||
}
|
||||
|
||||
// Offset: 16592
|
||||
// Size: 148
|
||||
// EAX: pMaterial
|
||||
// EDX: pPercent
|
||||
void BlendifyMaterialTablishly(br_material *pMaterial, int pPercent) {
|
||||
char *s;
|
||||
void BlendifyMaterialTablishly(br_material* pMaterial, int pPercent) {
|
||||
char* s;
|
||||
}
|
||||
|
||||
// Offset: 16740
|
||||
// Size: 110
|
||||
// EAX: pMaterial
|
||||
// EDX: pPercent
|
||||
void BlendifyMaterialPrimitively(br_material *pMaterial, int pPercent) {
|
||||
void BlendifyMaterialPrimitively(br_material* pMaterial, int pPercent) {
|
||||
static br_token_value alpha25[3];
|
||||
static br_token_value alpha50[3];
|
||||
static br_token_value alpha75[3];
|
||||
|
|
@ -1091,6 +1152,5 @@ void BlendifyMaterialPrimitively(br_material *pMaterial, int pPercent) {
|
|||
// Size: 73
|
||||
// EAX: pMaterial
|
||||
// EDX: pPercent
|
||||
void BlendifyMaterial(br_material *pMaterial, int pPercent) {
|
||||
void BlendifyMaterial(br_material* pMaterial, int pPercent) {
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
#ifndef _UTILITY_H_
|
||||
#define _UTILITY_H_
|
||||
|
||||
#include "dr_types.h"
|
||||
#include "br_types.h"
|
||||
#include "dr_types.h"
|
||||
|
||||
extern char* gMisc_strings[250];
|
||||
extern int gEncryption_method;
|
||||
|
||||
// Offset: 0
|
||||
// Size: 144
|
||||
|
|
@ -15,7 +18,7 @@ double sqr(double pN);
|
|||
// Offset: 196
|
||||
// Size: 542
|
||||
// EAX: pS
|
||||
void EncodeLine(char *pS);
|
||||
void EncodeLine(char* pS);
|
||||
|
||||
// Offset: 740
|
||||
// Size: 73
|
||||
|
|
@ -53,20 +56,20 @@ br_scalar SRandomPosNeg(br_scalar pN);
|
|||
// Size: 506
|
||||
// EAX: pF
|
||||
// EDX: pS
|
||||
char* GetALineWithNoPossibleService(FILE *pF, /*unsigned*/ char *pS);
|
||||
char* GetALineWithNoPossibleService(FILE* pF, /*unsigned*/ char* pS);
|
||||
|
||||
// Offset: 1744
|
||||
// Size: 60
|
||||
// EAX: pF
|
||||
// EDX: pS
|
||||
char* GetALineAndDontArgue(FILE *pF, char *pS);
|
||||
char* GetALineAndDontArgue(FILE* pF, char* pS);
|
||||
|
||||
// Offset: 1804
|
||||
// Size: 86
|
||||
// EAX: pDestn_str
|
||||
// EDX: pStr_1
|
||||
// EBX: pStr_2
|
||||
void PathCat(char *pDestn_str, char *pStr_1, char *pStr_2);
|
||||
void PathCat(char* pDestn_str, char* pStr_1, char* pStr_2);
|
||||
|
||||
// Offset: 1892
|
||||
// Size: 96
|
||||
|
|
@ -79,7 +82,7 @@ float tandeg(float pAngle);
|
|||
// Offset: 2084
|
||||
// Size: 80
|
||||
// EAX: pF
|
||||
tU32 GetFileLength(FILE *pF);
|
||||
tU32 GetFileLength(FILE* pF);
|
||||
|
||||
// Offset: 2164
|
||||
// Size: 68
|
||||
|
|
@ -92,7 +95,7 @@ int BooleanTo1Or0(int pB);
|
|||
// EDX: pW
|
||||
// EBX: pH
|
||||
// ECX: pPixels
|
||||
br_pixelmap* DRPixelmapAllocate(br_uint_8 pType, br_uint_16 pW, br_uint_16 pH, void *pPixels, int pFlags);
|
||||
br_pixelmap* DRPixelmapAllocate(br_uint_8 pType, br_uint_16 pW, br_uint_16 pH, void* pPixels, int pFlags);
|
||||
|
||||
// Offset: 2348
|
||||
// Size: 118
|
||||
|
|
@ -100,7 +103,7 @@ br_pixelmap* DRPixelmapAllocate(br_uint_8 pType, br_uint_16 pW, br_uint_16 pH, v
|
|||
// EDX: pX
|
||||
// EBX: pY
|
||||
// ECX: pW
|
||||
br_pixelmap* DRPixelmapAllocateSub(br_pixelmap *pPm, br_uint_16 pX, br_uint_16 pY, br_uint_16 pW, br_uint_16 pH);
|
||||
br_pixelmap* DRPixelmapAllocateSub(br_pixelmap* pPm, br_uint_16 pX, br_uint_16 pY, br_uint_16 pW, br_uint_16 pH);
|
||||
|
||||
// Offset: 2468
|
||||
// Size: 195
|
||||
|
|
@ -108,7 +111,7 @@ br_pixelmap* DRPixelmapAllocateSub(br_pixelmap *pPm, br_uint_16 pX, br_uint_16 p
|
|||
// EDX: pMatch_type
|
||||
// EBX: pWidth
|
||||
// ECX: pHeight
|
||||
br_pixelmap* DRPixelmapMatchSized(br_pixelmap *pSrc, tU8 pMatch_type, tS32 pWidth, tS32 pHeight);
|
||||
br_pixelmap* DRPixelmapMatchSized(br_pixelmap* pSrc, tU8 pMatch_type, tS32 pWidth, tS32 pHeight);
|
||||
|
||||
// Offset: 2664
|
||||
// Size: 357
|
||||
|
|
@ -116,43 +119,43 @@ br_pixelmap* DRPixelmapMatchSized(br_pixelmap *pSrc, tU8 pMatch_type, tS32 pWidt
|
|||
// EDX: pSrc
|
||||
// EBX: pSrc_width
|
||||
// ECX: pSrc_height
|
||||
void CopyDoubled8BitTo16BitRectangle(br_pixelmap *pDst, br_pixelmap *pSrc, int pSrc_width, int pSrc_height, int pDst_x, int pDst_y, br_pixelmap *pPalette);
|
||||
void CopyDoubled8BitTo16BitRectangle(br_pixelmap* pDst, br_pixelmap* pSrc, int pSrc_width, int pSrc_height, int pDst_x, int pDst_y, br_pixelmap* pPalette);
|
||||
|
||||
// Offset: 3024
|
||||
// Size: 262
|
||||
// EAX: pSrc
|
||||
// EDX: pWidth
|
||||
// EBX: pHeight
|
||||
br_pixelmap* Scale8BitPixelmap(br_pixelmap *pSrc, int pWidth, int pHeight);
|
||||
br_pixelmap* Scale8BitPixelmap(br_pixelmap* pSrc, int pWidth, int pHeight);
|
||||
|
||||
// Offset: 3288
|
||||
// Size: 390
|
||||
// EAX: pSrc
|
||||
// EDX: pN
|
||||
br_pixelmap* Tile8BitPixelmap(br_pixelmap *pSrc, int pN);
|
||||
br_pixelmap* Tile8BitPixelmap(br_pixelmap* pSrc, int pN);
|
||||
|
||||
// Offset: 3680
|
||||
// Size: 83
|
||||
// EAX: pName
|
||||
// EDX: pList
|
||||
tException_list FindExceptionInList(char *pName, tException_list pList);
|
||||
tException_list FindExceptionInList(char* pName, tException_list pList);
|
||||
|
||||
// Offset: 3764
|
||||
// Size: 492
|
||||
// EAX: pSrc
|
||||
br_pixelmap* PurifiedPixelmap(br_pixelmap *pSrc);
|
||||
br_pixelmap* PurifiedPixelmap(br_pixelmap* pSrc);
|
||||
|
||||
// Offset: 4256
|
||||
// Size: 105
|
||||
// EAX: pFile_name
|
||||
br_pixelmap* DRPixelmapLoad(char *pFile_name);
|
||||
br_pixelmap* DRPixelmapLoad(char* pFile_name);
|
||||
|
||||
// Offset: 4364
|
||||
// Size: 174
|
||||
// EAX: pFile_name
|
||||
// EDX: pPixelmaps
|
||||
// EBX: pNum
|
||||
br_uint_32 DRPixelmapLoadMany(char *pFile_name, br_pixelmap **pPixelmaps, br_uint_16 pNum);
|
||||
br_uint_32 DRPixelmapLoadMany(char* pFile_name, br_pixelmap** pPixelmaps, br_uint_16 pNum);
|
||||
|
||||
// Offset: 4540
|
||||
// Size: 67
|
||||
|
|
@ -164,17 +167,17 @@ void WaitFor(tU32 pDelay);
|
|||
// EAX: pActor
|
||||
// EDX: callback
|
||||
// EBX: arg
|
||||
br_uint_32 DRActorEnumRecurse(br_actor *pActor, br_actor_enum_cbfn *callback, void *arg);
|
||||
br_uint_32 DRActorEnumRecurse(br_actor* pActor, br_actor_enum_cbfn* callback, void* arg);
|
||||
|
||||
// Offset: 4744
|
||||
// Size: 77
|
||||
br_uint_32 CompareActorID(br_actor *pActor, void *pArg);
|
||||
br_uint_32 CompareActorID(br_actor* pActor, void* pArg);
|
||||
|
||||
// Offset: 4824
|
||||
// Size: 60
|
||||
// EAX: pSearch_root
|
||||
// EDX: pName
|
||||
br_actor* DRActorFindRecurse(br_actor *pSearch_root, char *pName);
|
||||
br_actor* DRActorFindRecurse(br_actor* pSearch_root, char* pName);
|
||||
|
||||
// Offset: 4884
|
||||
// Size: 156
|
||||
|
|
@ -182,7 +185,7 @@ br_actor* DRActorFindRecurse(br_actor *pSearch_root, char *pName);
|
|||
// EDX: pMat
|
||||
// EBX: pCall_back
|
||||
// ECX: pArg
|
||||
br_uint_32 DRActorEnumRecurseWithMat(br_actor *pActor, br_material *pMat, br_uint_32 (*pCall_back)(br_actor*, br_material*, void*), void *pArg);
|
||||
br_uint_32 DRActorEnumRecurseWithMat(br_actor* pActor, br_material* pMat, br_uint_32 (*pCall_back)(br_actor*, br_material*, void*), void* pArg);
|
||||
|
||||
// Offset: 5040
|
||||
// Size: 188
|
||||
|
|
@ -190,7 +193,7 @@ br_uint_32 DRActorEnumRecurseWithMat(br_actor *pActor, br_material *pMat, br_uin
|
|||
// EDX: pMatrix
|
||||
// EBX: pCall_back
|
||||
// ECX: pArg
|
||||
br_uint_32 DRActorEnumRecurseWithTrans(br_actor *pActor, br_matrix34 *pMatrix, br_uint_32 (*pCall_back)(br_actor*, br_matrix34*, void*), void *pArg);
|
||||
br_uint_32 DRActorEnumRecurseWithTrans(br_actor* pActor, br_matrix34* pMatrix, br_uint_32 (*pCall_back)(br_actor*, br_matrix34*, void*), void* pArg);
|
||||
|
||||
// Offset: 5228
|
||||
// Size: 89
|
||||
|
|
@ -205,17 +208,17 @@ float fsign(float pNumber);
|
|||
// Size: 210
|
||||
// EAX: pPrefix
|
||||
// EDX: pExtension
|
||||
FILE* OpenUniqueFileB(char *pPrefix, char *pExtension);
|
||||
FILE* OpenUniqueFileB(char* pPrefix, char* pExtension);
|
||||
|
||||
// Offset: 5632
|
||||
// Size: 572
|
||||
// EAX: pF
|
||||
void PrintScreenFile(FILE *pF);
|
||||
void PrintScreenFile(FILE* pF);
|
||||
|
||||
// Offset: 6204
|
||||
// Size: 554
|
||||
// EAX: pF
|
||||
void PrintScreenFile16(FILE *pF);
|
||||
void PrintScreenFile16(FILE* pF);
|
||||
|
||||
// Offset: 6760
|
||||
// Size: 95
|
||||
|
|
@ -240,7 +243,7 @@ void AddLostTime(tU32 pLost_time);
|
|||
// EDX: pStr
|
||||
// EBX: pFudge_colon
|
||||
// ECX: pForce_colon
|
||||
void TimerString(tU32 pTime, char *pStr, int pFudge_colon, int pForce_colon);
|
||||
void TimerString(tU32 pTime, char* pStr, int pFudge_colon, int pForce_colon);
|
||||
|
||||
// Offset: 7256
|
||||
// Size: 55
|
||||
|
|
@ -251,32 +254,32 @@ char* GetMiscString(int pIndex);
|
|||
// Size: 58
|
||||
// EAX: pIndex
|
||||
// EDX: pStr
|
||||
void GetCopyOfMiscString(int pIndex, char *pStr);
|
||||
void GetCopyOfMiscString(int pIndex, char* pStr);
|
||||
|
||||
// Offset: 7372
|
||||
// Size: 113
|
||||
// EAX: pPeriod
|
||||
// EDX: pLast_change
|
||||
// EBX: pCurrent_state
|
||||
int Flash(tU32 pPeriod, tU32 *pLast_change, int *pCurrent_state);
|
||||
int Flash(tU32 pPeriod, tU32* pLast_change, int* pCurrent_state);
|
||||
|
||||
// Offset: 7488
|
||||
// Size: 225
|
||||
// EAX: pDst
|
||||
// EDX: pSrc
|
||||
void MaterialCopy(br_material *pDst, br_material *pSrc);
|
||||
void MaterialCopy(br_material* pDst, br_material* pSrc);
|
||||
|
||||
// Offset: 7716
|
||||
// Size: 139
|
||||
// EAX: pColour_1
|
||||
// EDX: pColour_2
|
||||
double RGBDifferenceSqr(tRGB_colour *pColour_1, tRGB_colour *pColour_2);
|
||||
double RGBDifferenceSqr(tRGB_colour* pColour_1, tRGB_colour* pColour_2);
|
||||
|
||||
// Offset: 7856
|
||||
// Size: 200
|
||||
// EAX: pRGB_colour
|
||||
// EDX: pPalette
|
||||
int FindBestMatch(tRGB_colour *pRGB_colour, br_pixelmap *pPalette);
|
||||
int FindBestMatch(tRGB_colour* pRGB_colour, br_pixelmap* pPalette);
|
||||
|
||||
// Offset: 8056
|
||||
// Size: 232
|
||||
|
|
@ -284,7 +287,7 @@ int FindBestMatch(tRGB_colour *pRGB_colour, br_pixelmap *pPalette);
|
|||
// EDX: pR
|
||||
// EBX: pG
|
||||
// ECX: pB
|
||||
void BuildShadeTablePath(char *pThe_path, int pR, int pG, int pB);
|
||||
void BuildShadeTablePath(char* pThe_path, int pR, int pG, int pB);
|
||||
|
||||
// Offset: 8288
|
||||
// Size: 80
|
||||
|
|
@ -299,7 +302,7 @@ br_pixelmap* LoadGeneratedShadeTable(int pR, int pG, int pB);
|
|||
// EDX: pR
|
||||
// EBX: pG
|
||||
// ECX: pB
|
||||
void SaveGeneratedShadeTable(br_pixelmap *pThe_table, int pR, int pG, int pB);
|
||||
void SaveGeneratedShadeTable(br_pixelmap* pThe_table, int pR, int pG, int pB);
|
||||
|
||||
// Offset: 8448
|
||||
// Size: 106
|
||||
|
|
@ -307,7 +310,7 @@ void SaveGeneratedShadeTable(br_pixelmap *pThe_table, int pR, int pG, int pB);
|
|||
// EDX: pPalette
|
||||
// EBX: pRed_mix
|
||||
// ECX: pGreen_mix
|
||||
br_pixelmap* GenerateShadeTable(int pHeight, br_pixelmap *pPalette, int pRed_mix, int pGreen_mix, int pBlue_mix, float pQuarter, float pHalf, float pThree_quarter);
|
||||
br_pixelmap* GenerateShadeTable(int pHeight, br_pixelmap* pPalette, int pRed_mix, int pGreen_mix, int pBlue_mix, float pQuarter, float pHalf, float pThree_quarter);
|
||||
|
||||
// Offset: 8556
|
||||
// Size: 761
|
||||
|
|
@ -315,7 +318,7 @@ br_pixelmap* GenerateShadeTable(int pHeight, br_pixelmap *pPalette, int pRed_mix
|
|||
// EDX: pPalette
|
||||
// EBX: pRed_mix
|
||||
// ECX: pGreen_mix
|
||||
br_pixelmap* GenerateDarkenedShadeTable(int pHeight, br_pixelmap *pPalette, int pRed_mix, int pGreen_mix, int pBlue_mix, float pQuarter, float pHalf, float pThree_quarter, br_scalar pDarken);
|
||||
br_pixelmap* GenerateDarkenedShadeTable(int pHeight, br_pixelmap* pPalette, int pRed_mix, int pGreen_mix, int pBlue_mix, float pQuarter, float pHalf, float pThree_quarter, br_scalar pDarken);
|
||||
|
||||
// Offset: 9320
|
||||
// Size: 92
|
||||
|
|
@ -326,25 +329,25 @@ void PossibleService();
|
|||
// EAX: pA
|
||||
// EDX: pB
|
||||
// EBX: pC
|
||||
void DRMatrix34TApplyP(br_vector3 *pA, br_vector3 *pB, br_matrix34 *pC);
|
||||
void DRMatrix34TApplyP(br_vector3* pA, br_vector3* pB, br_matrix34* pC);
|
||||
|
||||
// Offset: 9604
|
||||
// Size: 132
|
||||
// EAX: pPal
|
||||
// EDX: pEntry
|
||||
tU16 PaletteEntry16Bit(br_pixelmap *pPal, int pEntry);
|
||||
tU16 PaletteEntry16Bit(br_pixelmap* pPal, int pEntry);
|
||||
|
||||
// Offset: 9736
|
||||
// Size: 210
|
||||
// EAX: pSrc
|
||||
br_pixelmap* PaletteOf16Bits(br_pixelmap *pSrc);
|
||||
br_pixelmap* PaletteOf16Bits(br_pixelmap* pSrc);
|
||||
|
||||
// Offset: 9948
|
||||
// Size: 219
|
||||
// EAX: pDst
|
||||
// EDX: pSrc
|
||||
// EBX: pPalette
|
||||
void Copy8BitTo16Bit(br_pixelmap *pDst, br_pixelmap *pSrc, br_pixelmap *pPalette);
|
||||
void Copy8BitTo16Bit(br_pixelmap* pDst, br_pixelmap* pSrc, br_pixelmap* pPalette);
|
||||
|
||||
// Offset: 10168
|
||||
// Size: 558
|
||||
|
|
@ -352,7 +355,7 @@ void Copy8BitTo16Bit(br_pixelmap *pDst, br_pixelmap *pSrc, br_pixelmap *pPalette
|
|||
// EDX: pDst_x
|
||||
// EBX: pDst_y
|
||||
// ECX: pSrc
|
||||
void Copy8BitTo16BitRectangle(br_pixelmap *pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap *pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, br_pixelmap *pPalette);
|
||||
void Copy8BitTo16BitRectangle(br_pixelmap* pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap* pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, br_pixelmap* pPalette);
|
||||
|
||||
// Offset: 10728
|
||||
// Size: 518
|
||||
|
|
@ -360,7 +363,7 @@ void Copy8BitTo16BitRectangle(br_pixelmap *pDst, tS16 pDst_x, tS16 pDst_y, br_pi
|
|||
// EDX: pDst_x
|
||||
// EBX: pDst_y
|
||||
// ECX: pSrc
|
||||
void Copy8BitTo16BitRectangleWithTransparency(br_pixelmap *pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap *pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, br_pixelmap *pPalette);
|
||||
void Copy8BitTo16BitRectangleWithTransparency(br_pixelmap* pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap* pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, br_pixelmap* pPalette);
|
||||
|
||||
// Offset: 11248
|
||||
// Size: 279
|
||||
|
|
@ -368,7 +371,7 @@ void Copy8BitTo16BitRectangleWithTransparency(br_pixelmap *pDst, tS16 pDst_x, tS
|
|||
// EDX: pDst_x
|
||||
// EBX: pDst_y
|
||||
// ECX: pSrc
|
||||
void Copy8BitToOnscreen16BitRectangleWithTransparency(br_pixelmap *pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap *pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, br_pixelmap *pPalette);
|
||||
void Copy8BitToOnscreen16BitRectangleWithTransparency(br_pixelmap* pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap* pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, br_pixelmap* pPalette);
|
||||
|
||||
// Offset: 11528
|
||||
// Size: 601
|
||||
|
|
@ -376,7 +379,7 @@ void Copy8BitToOnscreen16BitRectangleWithTransparency(br_pixelmap *pDst, tS16 pD
|
|||
// EDX: pDst_x
|
||||
// EBX: pDst_y
|
||||
// ECX: pSrc
|
||||
void Copy8BitRectangleTo16BitRhombusWithTransparency(br_pixelmap *pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap *pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, tX1616 pShear, br_pixelmap *pPalette);
|
||||
void Copy8BitRectangleTo16BitRhombusWithTransparency(br_pixelmap* pDst, tS16 pDst_x, tS16 pDst_y, br_pixelmap* pSrc, tS16 pSrc_x, tS16 pSrc_y, tS16 pWidth, tS16 pHeight, tX1616 pShear, br_pixelmap* pPalette);
|
||||
|
||||
// Offset: 12132
|
||||
// Size: 173
|
||||
|
|
@ -384,13 +387,13 @@ void Copy8BitRectangleTo16BitRhombusWithTransparency(br_pixelmap *pDst, tS16 pDs
|
|||
// EDX: dx
|
||||
// EBX: dy
|
||||
// ECX: src
|
||||
void DRPixelmapRectangleCopy(br_pixelmap *dst, br_int_16 dx, br_int_16 dy, br_pixelmap *src, br_int_16 sx, br_int_16 sy, br_uint_16 w, br_uint_16 h);
|
||||
void DRPixelmapRectangleCopy(br_pixelmap* dst, br_int_16 dx, br_int_16 dy, br_pixelmap* src, br_int_16 sx, br_int_16 sy, br_uint_16 w, br_uint_16 h);
|
||||
|
||||
// Offset: 12308
|
||||
// Size: 107
|
||||
// EAX: dst
|
||||
// EDX: src
|
||||
void DRPixelmapCopy(br_pixelmap *dst, br_pixelmap *src);
|
||||
void DRPixelmapCopy(br_pixelmap* dst, br_pixelmap* src);
|
||||
|
||||
// Offset: 12416
|
||||
// Size: 82
|
||||
|
|
@ -398,112 +401,112 @@ void DRPixelmapCopy(br_pixelmap *dst, br_pixelmap *src);
|
|||
// EDX: x
|
||||
// EBX: y
|
||||
// ECX: w
|
||||
void DRPixelmapRectangleFill(br_pixelmap *dst, br_int_16 x, br_int_16 y, br_uint_16 w, br_uint_16 h, br_uint_32 colour);
|
||||
void DRPixelmapRectangleFill(br_pixelmap* dst, br_int_16 x, br_int_16 y, br_uint_16 w, br_uint_16 h, br_uint_32 colour);
|
||||
|
||||
// Offset: 12500
|
||||
// Size: 156
|
||||
// EAX: pPoint
|
||||
// EDX: pNormal
|
||||
int NormalSideOfPlane(br_vector3 *pPoint, br_vector3 *pNormal, br_scalar pD);
|
||||
int NormalSideOfPlane(br_vector3* pPoint, br_vector3* pNormal, br_scalar pD);
|
||||
|
||||
// Offset: 12656
|
||||
// Size: 351
|
||||
// EAX: pMaterial
|
||||
br_material* DRMaterialClone(br_material *pMaterial);
|
||||
br_material* DRMaterialClone(br_material* pMaterial);
|
||||
|
||||
// Offset: 13008
|
||||
// Size: 93
|
||||
// EAX: s
|
||||
void StripCR(char *s);
|
||||
void StripCR(char* s);
|
||||
|
||||
// Offset: 13104
|
||||
// Size: 132
|
||||
void SubsStringJob(char *pStr, ...);
|
||||
void SubsStringJob(char* pStr, ...);
|
||||
|
||||
// Offset: 13236
|
||||
// Size: 454
|
||||
// EAX: pS
|
||||
void DecodeLine2(char *pS);
|
||||
void DecodeLine2(char* pS);
|
||||
|
||||
// Offset: 13692
|
||||
// Size: 304
|
||||
// EAX: pS
|
||||
void EncodeLine2(char *pS);
|
||||
void EncodeLine2(char* pS);
|
||||
|
||||
// Offset: 13996
|
||||
// Size: 553
|
||||
// EAX: pThe_path
|
||||
void EncodeFile(char *pThe_path);
|
||||
void EncodeFile(char* pThe_path);
|
||||
|
||||
// Offset: 14552
|
||||
// Size: 513
|
||||
// EAX: pThe_path
|
||||
void EncodeFileWrapper(char *pThe_path);
|
||||
void EncodeFileWrapper(char* pThe_path);
|
||||
|
||||
// Offset: 15068
|
||||
// Size: 72
|
||||
// EAX: pThe_path
|
||||
void EncodeAllFilesInDirectory(char *pThe_path);
|
||||
void EncodeAllFilesInDirectory(char* pThe_path);
|
||||
|
||||
// Offset: 15140
|
||||
// Size: 89
|
||||
// EAX: pF
|
||||
void SkipNLines(FILE *pF);
|
||||
void SkipNLines(FILE* pF);
|
||||
|
||||
// Offset: 15232
|
||||
// Size: 118
|
||||
// EAX: p1
|
||||
// EDX: p2
|
||||
int DRStricmp(char *p1, char *p2);
|
||||
int DRStricmp(char* p1, char* p2);
|
||||
|
||||
// Offset: 15352
|
||||
// Size: 559
|
||||
// EAX: pArray
|
||||
// EDX: pCount
|
||||
void GlorifyMaterial(br_material **pArray, int pCount);
|
||||
void GlorifyMaterial(br_material** pArray, int pCount);
|
||||
|
||||
// Offset: 15912
|
||||
// Size: 178
|
||||
// EAX: pArray
|
||||
// EDX: pN
|
||||
void WhitenVertexRGB(br_model **pArray, int pN);
|
||||
void WhitenVertexRGB(br_model** pArray, int pN);
|
||||
|
||||
// Offset: 16092
|
||||
// Size: 239
|
||||
// EAX: pPalette
|
||||
void NobbleNonzeroBlacks(br_pixelmap *pPalette);
|
||||
void NobbleNonzeroBlacks(br_pixelmap* pPalette);
|
||||
|
||||
// Offset: 16332
|
||||
// Size: 55
|
||||
// EAX: pThe_path
|
||||
int PDCheckDriveExists(char *pThe_path);
|
||||
int PDCheckDriveExists(char* pThe_path);
|
||||
|
||||
// Offset: 16388
|
||||
// Size: 102
|
||||
// EAX: pPrims
|
||||
int OpacityInPrims(br_token_value *pPrims);
|
||||
int OpacityInPrims(br_token_value* pPrims);
|
||||
|
||||
// Offset: 16492
|
||||
// Size: 97
|
||||
// EAX: pMaterial
|
||||
int AlreadyBlended(br_material *pMaterial);
|
||||
int AlreadyBlended(br_material* pMaterial);
|
||||
|
||||
// Offset: 16592
|
||||
// Size: 148
|
||||
// EAX: pMaterial
|
||||
// EDX: pPercent
|
||||
void BlendifyMaterialTablishly(br_material *pMaterial, int pPercent);
|
||||
void BlendifyMaterialTablishly(br_material* pMaterial, int pPercent);
|
||||
|
||||
// Offset: 16740
|
||||
// Size: 110
|
||||
// EAX: pMaterial
|
||||
// EDX: pPercent
|
||||
void BlendifyMaterialPrimitively(br_material *pMaterial, int pPercent);
|
||||
void BlendifyMaterialPrimitively(br_material* pMaterial, int pPercent);
|
||||
|
||||
// Offset: 16852
|
||||
// Size: 73
|
||||
// EAX: pMaterial
|
||||
// EDX: pPercent
|
||||
void BlendifyMaterial(br_material *pMaterial, int pPercent);
|
||||
void BlendifyMaterial(br_material* pMaterial, int pPercent);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,316 @@
|
|||
// Based on https://gist.github.com/jvranish/4441299
|
||||
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <signal.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <imagehlp.h>
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <err.h>
|
||||
#include <execinfo.h>
|
||||
#endif
|
||||
|
||||
static int stack_nbr = 0;
|
||||
static char _program_name[1024];
|
||||
|
||||
/* Resolve symbol name and source location given the path to the executable
|
||||
and an address */
|
||||
int addr2line(char const* const program_name, void const* const addr) {
|
||||
char addr2line_cmd[512] = { 0 };
|
||||
|
||||
/* have addr2line map the address to the relent line in the code */
|
||||
#ifdef __APPLE__
|
||||
/* apple does things differently... */
|
||||
sprintf(addr2line_cmd, "atos -o %.256s %p", program_name, addr);
|
||||
#else
|
||||
sprintf(addr2line_cmd, "addr2line -f -p -e %.256s %p", program_name, addr);
|
||||
#endif
|
||||
|
||||
fprintf(stderr, "%d: ", stack_nbr++);
|
||||
return system(addr2line_cmd);
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
void windows_print_stacktrace(CONTEXT* context) {
|
||||
SymInitialize(GetCurrentProcess(), 0, true);
|
||||
|
||||
STACKFRAME frame = { 0 };
|
||||
|
||||
/* setup initial stack frame */
|
||||
frame.AddrPC.Offset = context->Eip;
|
||||
frame.AddrPC.Mode = AddrModeFlat;
|
||||
frame.AddrStack.Offset = context->Esp;
|
||||
frame.AddrStack.Mode = AddrModeFlat;
|
||||
frame.AddrFrame.Offset = context->Ebp;
|
||||
frame.AddrFrame.Mode = AddrModeFlat;
|
||||
|
||||
while (StackWalk(IMAGE_FILE_MACHINE_I386,
|
||||
GetCurrentProcess(),
|
||||
GetCurrentThread(),
|
||||
&frame,
|
||||
context,
|
||||
0,
|
||||
SymFunctionTableAccess,
|
||||
SymGetModuleBase,
|
||||
0)) {
|
||||
addr2line(_program_name, (void*)frame.AddrPC.Offset);
|
||||
}
|
||||
|
||||
SymCleanup(GetCurrentProcess());
|
||||
}
|
||||
|
||||
LONG WINAPI windows_exception_handler(EXCEPTION_POINTERS* ExceptionInfo) {
|
||||
switch (ExceptionInfo->ExceptionRecord->ExceptionCode) {
|
||||
case EXCEPTION_ACCESS_VIOLATION:
|
||||
fputs("Error: EXCEPTION_ACCESS_VIOLATION\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
|
||||
fputs("Error: EXCEPTION_ARRAY_BOUNDS_EXCEEDED\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_BREAKPOINT:
|
||||
fputs("Error: EXCEPTION_BREAKPOINT\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_DATATYPE_MISALIGNMENT:
|
||||
fputs("Error: EXCEPTION_DATATYPE_MISALIGNMENT\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_FLT_DENORMAL_OPERAND:
|
||||
fputs("Error: EXCEPTION_FLT_DENORMAL_OPERAND\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_FLT_DIVIDE_BY_ZERO:
|
||||
fputs("Error: EXCEPTION_FLT_DIVIDE_BY_ZERO\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_FLT_INEXACT_RESULT:
|
||||
fputs("Error: EXCEPTION_FLT_INEXACT_RESULT\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_FLT_INVALID_OPERATION:
|
||||
fputs("Error: EXCEPTION_FLT_INVALID_OPERATION\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_FLT_OVERFLOW:
|
||||
fputs("Error: EXCEPTION_FLT_OVERFLOW\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_FLT_STACK_CHECK:
|
||||
fputs("Error: EXCEPTION_FLT_STACK_CHECK\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_FLT_UNDERFLOW:
|
||||
fputs("Error: EXCEPTION_FLT_UNDERFLOW\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_ILLEGAL_INSTRUCTION:
|
||||
fputs("Error: EXCEPTION_ILLEGAL_INSTRUCTION\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_IN_PAGE_ERROR:
|
||||
fputs("Error: EXCEPTION_IN_PAGE_ERROR\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_INT_DIVIDE_BY_ZERO:
|
||||
fputs("Error: EXCEPTION_INT_DIVIDE_BY_ZERO\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_INT_OVERFLOW:
|
||||
fputs("Error: EXCEPTION_INT_OVERFLOW\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_INVALID_DISPOSITION:
|
||||
fputs("Error: EXCEPTION_INVALID_DISPOSITION\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_NONCONTINUABLE_EXCEPTION:
|
||||
fputs("Error: EXCEPTION_NONCONTINUABLE_EXCEPTION\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_PRIV_INSTRUCTION:
|
||||
fputs("Error: EXCEPTION_PRIV_INSTRUCTION\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_SINGLE_STEP:
|
||||
fputs("Error: EXCEPTION_SINGLE_STEP\n", stderr);
|
||||
break;
|
||||
case EXCEPTION_STACK_OVERFLOW:
|
||||
fputs("Error: EXCEPTION_STACK_OVERFLOW\n", stderr);
|
||||
break;
|
||||
default:
|
||||
fputs("Error: Unrecognized Exception\n", stderr);
|
||||
break;
|
||||
}
|
||||
fflush(stderr);
|
||||
/* If this is a stack overflow then we can't walk the stack, so just show
|
||||
where the error happened */
|
||||
if (EXCEPTION_STACK_OVERFLOW != ExceptionInfo->ExceptionRecord->ExceptionCode) {
|
||||
windows_print_stacktrace(ExceptionInfo->ContextRecord);
|
||||
} else {
|
||||
addr2line(_program_name, (void*)ExceptionInfo->ContextRecord->Eip);
|
||||
}
|
||||
|
||||
return EXCEPTION_EXECUTE_HANDLER;
|
||||
}
|
||||
|
||||
void set_signal_handler(char* program_name) {
|
||||
strcpy(_program_name, program_name);
|
||||
SetUnhandledExceptionFilter(windows_exception_handler);
|
||||
}
|
||||
#else
|
||||
|
||||
#define MAX_STACK_FRAMES 64
|
||||
static void* stack_traces[MAX_STACK_FRAMES];
|
||||
|
||||
void posix_print_stack_trace() {
|
||||
int i, trace_size = 0;
|
||||
char** messages = (char**)NULL;
|
||||
|
||||
fputs("\nStack trace:\n", stderr);
|
||||
|
||||
trace_size = backtrace(stack_traces, MAX_STACK_FRAMES);
|
||||
messages = backtrace_symbols(stack_traces, trace_size);
|
||||
|
||||
/* skip the first couple stack frames (as they are this function and
|
||||
our handler) and also skip the last frame as it's (always?) junk. */
|
||||
for (i = 3; i < (trace_size - 1); ++i) {
|
||||
if (addr2line(_program_name, stack_traces[i]) != 0) {
|
||||
printf(" error determining line # for: %s\n", messages[i]);
|
||||
}
|
||||
}
|
||||
if (messages) {
|
||||
free(messages);
|
||||
}
|
||||
}
|
||||
|
||||
void posix_signal_handler(int sig, siginfo_t* siginfo, void* context) {
|
||||
(void)context;
|
||||
fputs("\n******************\n", stderr);
|
||||
|
||||
switch (sig) {
|
||||
case SIGSEGV:
|
||||
fputs("Caught SIGSEGV\n", stderr);
|
||||
break;
|
||||
case SIGINT:
|
||||
fputs("Caught SIGINT\n", stderr);
|
||||
break;
|
||||
case SIGFPE:
|
||||
switch (siginfo->si_code) {
|
||||
case FPE_INTDIV:
|
||||
fputs("Caught SIGFPE: FPE_INTDIV\n", stderr);
|
||||
break;
|
||||
case FPE_INTOVF:
|
||||
fputs("Caught SIGFPE: FPE_INTOVF\n", stderr);
|
||||
break;
|
||||
case FPE_FLTDIV:
|
||||
fputs("Caught SIGFPE: FPE_FLTDIV\n", stderr);
|
||||
break;
|
||||
case FPE_FLTOVF:
|
||||
fputs("Caught SIGFPE: FPE_FLTOVF\n", stderr);
|
||||
break;
|
||||
case FPE_FLTUND:
|
||||
fputs("Caught SIGFPE: FPE_FLTUND\n", stderr);
|
||||
break;
|
||||
case FPE_FLTRES:
|
||||
fputs("Caught SIGFPE: FPE_FLTRES\n", stderr);
|
||||
break;
|
||||
case FPE_FLTINV:
|
||||
fputs("Caught SIGFPE: FPE_FLTINV\n", stderr);
|
||||
break;
|
||||
case FPE_FLTSUB:
|
||||
fputs("Caught SIGFPE: FPE_FLTSUB\n", stderr);
|
||||
break;
|
||||
default:
|
||||
fputs("Caught SIGFPE: Arithmetic Exception\n", stderr);
|
||||
break;
|
||||
}
|
||||
case SIGILL:
|
||||
switch (siginfo->si_code) {
|
||||
case ILL_ILLOPC:
|
||||
fputs("Caught SIGILL: ILL_ILLOPC\n", stderr);
|
||||
break;
|
||||
case ILL_ILLOPN:
|
||||
fputs("Caught SIGILL: ILL_ILLOPN\n", stderr);
|
||||
break;
|
||||
case ILL_ILLADR:
|
||||
fputs("Caught SIGILL: ILL_ILLADR\n", stderr);
|
||||
break;
|
||||
case ILL_ILLTRP:
|
||||
fputs("Caught SIGILL: ILL_ILLTRP\n", stderr);
|
||||
break;
|
||||
case ILL_PRVOPC:
|
||||
fputs("Caught SIGILL: ILL_PRVOPC\n", stderr);
|
||||
break;
|
||||
case ILL_PRVREG:
|
||||
fputs("Caught SIGILL: ILL_PRVREG\n", stderr);
|
||||
break;
|
||||
case ILL_COPROC:
|
||||
fputs("Caught SIGILL: ILL_COPROC\n", stderr);
|
||||
break;
|
||||
case ILL_BADSTK:
|
||||
fputs("Caught SIGILL: ILL_BADSTK\n", stderr);
|
||||
break;
|
||||
default:
|
||||
fputs("Caught SIGILL: Illegal Instruction\n", stderr);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SIGTERM:
|
||||
fputs("Caught SIGTERM\n", stderr);
|
||||
break;
|
||||
case SIGABRT:
|
||||
fputs("Caught SIGABRT\n", stderr);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
fputs("******************\n", stderr);
|
||||
posix_print_stack_trace();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
static uint8_t alternate_stack[SIGSTKSZ];
|
||||
void set_signal_handler(char* program_name) {
|
||||
|
||||
strcpy(_program_name, program_name);
|
||||
|
||||
/* setup alternate stack */
|
||||
{
|
||||
stack_t ss = {};
|
||||
/* malloc is usually used here, I'm not 100% sure my static allocation
|
||||
is valid but it seems to work just fine. */
|
||||
ss.ss_sp = (void*)alternate_stack;
|
||||
ss.ss_size = SIGSTKSZ;
|
||||
ss.ss_flags = 0;
|
||||
|
||||
if (sigaltstack(&ss, NULL) != 0) {
|
||||
err(1, "sigaltstack");
|
||||
}
|
||||
}
|
||||
|
||||
/* register our signal handlers */
|
||||
{
|
||||
struct sigaction sig_action = {};
|
||||
sig_action.sa_sigaction = posix_signal_handler;
|
||||
sigemptyset(&sig_action.sa_mask);
|
||||
|
||||
#ifdef __APPLE__
|
||||
/* for some reason we backtrace() doesn't work on osx
|
||||
when we use an alternate stack */
|
||||
sig_action.sa_flags = SA_SIGINFO;
|
||||
#else
|
||||
sig_action.sa_flags = SA_SIGINFO | SA_ONSTACK;
|
||||
#endif
|
||||
|
||||
if (sigaction(SIGSEGV, &sig_action, NULL) != 0) {
|
||||
err(1, "sigaction");
|
||||
}
|
||||
if (sigaction(SIGFPE, &sig_action, NULL) != 0) {
|
||||
err(1, "sigaction");
|
||||
}
|
||||
if (sigaction(SIGINT, &sig_action, NULL) != 0) {
|
||||
err(1, "sigaction");
|
||||
}
|
||||
if (sigaction(SIGILL, &sig_action, NULL) != 0) {
|
||||
err(1, "sigaction");
|
||||
}
|
||||
if (sigaction(SIGTERM, &sig_action, NULL) != 0) {
|
||||
err(1, "sigaction");
|
||||
}
|
||||
if (sigaction(SIGABRT, &sig_action, NULL) != 0) {
|
||||
err(1, "sigaction");
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
#include "new/stack_trace_handler.h"
|
||||
#include "pc-dos/dossys.h"
|
||||
|
||||
extern int _main(int pArgc, char* pArgv[]);
|
||||
|
|
@ -5,6 +6,7 @@ extern int _main(int pArgc, char* pArgv[]);
|
|||
// EAX: pArgc
|
||||
// EDX: pArgv
|
||||
// Moved from pc-dos/dossys.c to enable unit testing
|
||||
int main(int pArgc, char* pArgv[]) {
|
||||
return _main(pArgc, pArgv);
|
||||
int main(int argc, char* argv[]) {
|
||||
set_signal_handler(argv[0]);
|
||||
return _main(argc, argv);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,13 +6,7 @@
|
|||
#include "common/globvars.h"
|
||||
#include "pc-dos/dossys.h"
|
||||
|
||||
|
||||
void test_dossys_PDInitialiseSystem() {
|
||||
|
||||
FILE *file = fopen("/tmp/KEYBOARD.COK", "wt");
|
||||
fprintf(file,"abcdef");
|
||||
fclose(file);
|
||||
|
||||
PDInitialiseSystem();
|
||||
TEST_ASSERT_EQUAL_STRING("abc", gASCII_table);
|
||||
TEST_ASSERT_EQUAL_STRING("def", gASCII_shift_table);
|
||||
|
|
|
|||
|
|
@ -4,28 +4,47 @@
|
|||
#include <unistd.h>
|
||||
|
||||
#include "common/globvars.h"
|
||||
#include "common/init.h"
|
||||
#include "common/loading.h"
|
||||
|
||||
#include "common/newgame.h"
|
||||
|
||||
void test_loading_GetCDPathFromPathsTxtFile() {
|
||||
int result;
|
||||
tPath_name cd_path;
|
||||
|
||||
unlink("/tmp/PATHS.TXT");
|
||||
|
||||
// should return false, path does not exist
|
||||
result = GetCDPathFromPathsTxtFile(cd_path);
|
||||
TEST_ASSERT_EQUAL_INT(0, result);
|
||||
|
||||
FILE *file = fopen("/tmp/PATHS.TXT","wt");
|
||||
fprintf(file,"test_cd_path\r\n");
|
||||
fclose(file);
|
||||
|
||||
result = GetCDPathFromPathsTxtFile(cd_path);
|
||||
TEST_ASSERT_EQUAL_INT(1, result);
|
||||
TEST_ASSERT_EQUAL_STRING("test_cd_path", cd_path);
|
||||
TEST_ASSERT_EQUAL_STRING(".\\DATA\\MINICD", cd_path);
|
||||
}
|
||||
|
||||
void test_loading_OldDRfopen() {
|
||||
FILE* f;
|
||||
|
||||
f = OldDRfopen("DATA/i-dont-exist", "rt");
|
||||
TEST_ASSERT_NULL(f);
|
||||
|
||||
f = OldDRfopen("DATA/GENERAL.TXT", "rt");
|
||||
TEST_ASSERT_NOT_NULL(f);
|
||||
}
|
||||
|
||||
void test_loading_LoadGeneralParameters() {
|
||||
|
||||
LoadGeneralParameters();
|
||||
TEST_ASSERT_EQUAL_FLOAT(0.02f, gCamera_hither);
|
||||
TEST_ASSERT_EQUAL_INT(7500, gInitial_credits[0]);
|
||||
TEST_ASSERT_EQUAL_INT(5000, gInitial_credits[1]);
|
||||
TEST_ASSERT_EQUAL_INT(3000, gInitial_credits[2]);
|
||||
TEST_ASSERT_EQUAL_STRING("BLKEAGLE.TXT", gBasic_car_names[0]);
|
||||
TEST_ASSERT_EQUAL_FLOAT(0.2f, gDefault_default_water_spec_vol.gravity_multiplier);
|
||||
TEST_ASSERT_EQUAL_FLOAT(50.0f, gDefault_default_water_spec_vol.viscosity_multiplier);
|
||||
|
||||
TEST_ASSERT_EQUAL_INT(0, gInitial_net_credits[0]);
|
||||
TEST_ASSERT_EQUAL_INT(2000, gInitial_net_credits[1]);
|
||||
TEST_ASSERT_EQUAL_INT(1, gGravity_multiplier);
|
||||
}
|
||||
|
||||
void test_loading_suite() {
|
||||
RUN_TEST(test_loading_GetCDPathFromPathsTxtFile);
|
||||
RUN_TEST(test_loading_OldDRfopen);
|
||||
RUN_TEST(test_loading_LoadGeneralParameters);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,22 @@
|
|||
#include "framework/unity.h"
|
||||
|
||||
#include <string.h>
|
||||
#include "common/utility.h"
|
||||
#include <string.h>
|
||||
|
||||
void test_utility_EncodeLinex() {
|
||||
char buf[50];
|
||||
// first line of GENERAL.TXT, "@" prefix and line ending stripped
|
||||
char input[] = "\x29\x2a\x9c\x22\x61\x4d\x5e\x5f\x60\x34\x64\x57\x8d\x2b\x82\x7b\x33\x4c";
|
||||
strcpy(buf, input);
|
||||
EncodeLine(buf);
|
||||
//TEST_ASSERT_EQUAL_INT(2, gEncryption_method);
|
||||
char expected[] = "0.01\t\t\t\t\t// Hither";
|
||||
TEST_ASSERT_EQUAL_STRING(expected, buf);
|
||||
}
|
||||
|
||||
void test_utility_DecodeLine2() {
|
||||
char buf[50];
|
||||
gEncryption_method = 1;
|
||||
// first line of GENERAL.TXT, "@" prefix and line ending stripped
|
||||
char input[] = "\x29\x2a\x9c\x22\x61\x4d\x5e\x5f\x60\x34\x64\x57\x8d\x2b\x82\x7b\x33\x4c";
|
||||
strcpy(buf, input);
|
||||
|
|
@ -32,14 +44,14 @@ void test_utility_StripCR() {
|
|||
}
|
||||
|
||||
void test_utility_GetALineWithNoPossibleService() {
|
||||
FILE *file = fopen("/tmp/testfile","wt");
|
||||
fprintf(file,"hello world\r\n space_prefixed\r\n\r\n\ttab_prefixed\r\n$ignored_prefix\r\nlast_line");
|
||||
FILE* file = fopen("/tmp/testfile", "wt");
|
||||
fprintf(file, "hello world\r\n space_prefixed\r\n\r\n\ttab_prefixed\r\n$ignored_prefix\r\nlast_line");
|
||||
fclose(file);
|
||||
|
||||
file = fopen("/tmp/testfile","rt");
|
||||
file = fopen("/tmp/testfile", "rt");
|
||||
char s[256];
|
||||
|
||||
char *result = GetALineWithNoPossibleService(file, s);
|
||||
char* result = GetALineWithNoPossibleService(file, s);
|
||||
TEST_ASSERT_NOT_NULL(result);
|
||||
TEST_ASSERT_EQUAL_STRING("hello world", s);
|
||||
|
||||
|
|
@ -69,6 +81,7 @@ void test_utility_PathCat() {
|
|||
}
|
||||
|
||||
void test_utility_suite() {
|
||||
RUN_TEST(test_utility_EncodeLinex);
|
||||
RUN_TEST(test_utility_DecodeLine2);
|
||||
RUN_TEST(test_utility_EncodeLine2);
|
||||
RUN_TEST(test_utility_StripCR);
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ DEPS := $(OBJS:.o=.d)
|
|||
INC_DIRS := $(shell find $(SRC_DIR) -type d) $(BR_SRC_DIR) $(DR_SRC_DIR)
|
||||
INC_FLAGS := $(addprefix -I,$(INC_DIRS))
|
||||
|
||||
CFLAGS ?= $(INC_FLAGS)
|
||||
LDFLAGS ?= -lm
|
||||
CFLAGS ?= $(INC_FLAGS) -g
|
||||
LDFLAGS ?= -lm -fno-pie
|
||||
|
||||
.PHONY: clean build run
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
********************************************************************************************************************************************************************************************************************************************************************
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
@)*ś"aM^_`4dWŤ+‚{3L
|
||||
@ź&O}n_`›KŽp3VJ9P
|
||||
@1™=Tx^_`›K!pb5r;[Uz4<{<7B>ŽŤ
|
||||
@n_`›KŽ_3V3—SErq3aF<61>Ś<EFBFBD>‚66›v8J
|
||||
@+yŽ™„,“Nb5.‡‰–‚5b”r5U@i{({‚BŠ ž"*‚}3MT;u0z“Śś
|
||||
@*XM^_`›K!pb?}?JNzx}g‡Ś<E280A1>
|
||||
@|;o,U;)4ś?R}no`›K!pb?}?JNzx}v”‡Ś›<C59A>6b<36>|$žBzw55•‰<E280A2>ž›e.“e3R
|
||||
@<)4ś#M~koP+g:o,I>™„<E284A2><4žg<C5BE>†<EFBFBD>†„e2“avLFu}s‰<73>H—–&*V`=WKw41p<31>‡„
|
||||
@z ośyŽ™„,<N}RŠŤŠ“›e!„f%Vxv}3J Ť„–W##•g9L
|
||||
@z ośyŽ™„,<N}RŠŤŠ“›e!„f%Vxvu%J Ť„–W##•g9L
|
||||
@n2IŽ™„,“abqF%„ť•$.Vp$KTsK*|„ „—W##•g9L
|
||||
@-W>™„,“aMqpB/ž<>'#š35LRh|‚yŹŹ<C5B9>†(!' z7PS;r<v’Ťš
|
||||
@oqP›KŽ_śy!6ž`w{?tŠB‹ ‚6*)`&RNoK>}‡Ś‹—W##•g9L
|
||||
@{ hśyŽ™„,<N}RŠŤŠ“›e!„f%Vxh{;a<>‡›<E280A1>W##•g9L
|
||||
@H>56ś?R}^_`›K!pb$v&_Ni4>z•–H”<48>7b“r5V‡h4yŠB„—<E2809E> .V;5LB4-p”BMR“$/—t3—
|
||||
@"Q}ns@){>o0Y:)4ś“abqF0Ť‘<C5A4>3'„jv]Hh`}s‰<73>H—–&*V`=WKw41p<31>‡„
|
||||
@mP7s"jśyŽ™+<2B>;@4x<34>B<EFBFBD>—…e2“wvUNwx}s‰<73>H—–&*V`=WKw41p<31>‡„
|
||||
@>q+L")*™?Qclj`›K!pb%v5QIg}e<><65>H‡™,6Vp7L‡u0t<30>‡H”<48>7b“r5V‡h4yŠB„—<E2809E> .V;!WSs4-p‚‘A
|
||||
@5ť?Yak_`›K!pb5a3ZNog}e<><65>H‡™,6Vp7L‡u0t<30>‡H”<48>7b“r5V‡h4yŠB„—<E2809E> .V;!WSs4-p‚‘A
|
||||
@-K>5=ś?W}^_`›d!e–ź~3žFlu/q<>†H”<48>7b<37>r%JNus}v‡<76>H”<48>7b“r5V‡h4yŠB„—<E2809E> .V;!WSs4-p‚‘A
|
||||
@J>)4 !Q}nsQ+{>_śy!6ždiq9|’‘H“ $0’v2žAtf}b‡‘ś›™"b•r$žAtf}p‡<70> R„.+švRBmq15N•<4E>†źe2“w%—
|
||||
@hoL({"n)yŽ™„<E284A2><4‰|‹‡H“ $0’v2žAtf}g‰Ž„›™"b•r$žAtf}p‡<70> R„.+švRBmq15N•<4E>†źe2“w%—
|
||||
@H>)4 "Q}nsQ+{>_śy!6ždiq9|’‘H“ $0’v2žAtf}g‰Ž„›™"b•r$žAtf}p‡<70> R„.+švRBmq15N•<4E>†źe2“w%—
|
||||
@){>o0L>)(™#aM^pOH1… &źg%žFlu/q<>†H”<48>7b•{3]Lk{4{’‘H”<48>7b“r5V‡h4yŠB„—<E2809E> .V;!WSs4-p‚‘A
|
||||
@>q+L")*™?Qclj`›K!pb%v5QIg}e<><65>H‡™,6Vp7L‡u0t<30>‡H”<48>7b“r5V‡h4yŠB„—<E2809E> .V;!WSs4-p‚‘A
|
||||
@5ť?Yak_`›K!pb5a3ZNog}e<><65>H‡™,6Vp7L‡u0t<30>‡H”<48>7b“r5V‡h4yŠB„—<E2809E> .V;!WSs4-p‚‘A
|
||||
@-K>5=ś?W}^_`›d!e–ź~3žFlu/q<>†H”<48>7b<37>r%JNus}v‡<76>H”<48>7b“r5V‡h4yŠB„—<E2809E> .V;!WSs4-p‚‘A
|
||||
@J>)4 !Q}nsQ+{>_śy!6ždiq9|’‘H“ $0’v2žAtf}b‡‘ś›™"b•r$žAtf}p‡<70> R„.+švRBmq15N•<4E>†źe2“w%—
|
||||
@hoL({"n)yŽ™„<E284A2><4‰|‹‡H“ $0’v2žAtf}g‰Ž„›™"b•r$žAtf}p‡<70> R„.+švRBmq15N•<4E>†źe2“w%—
|
||||
@H>)4 "Q}nsQ+{>_śy!6ždiq9|’‘H“ $0’v2žAtf}g‰Ž„›™"b•r$žAtf}p‡<70> R„.+švRBmq15N•<4E>†źe2“w%—
|
||||
@){>o0L>)(™#aM^pOH1… &źg%žFlu/q<>†H”<48>7b•{3]Lk{4{’‘H”<48>7b“r5V‡h4yŠB„—<E2809E> .V;!WSs4-p‚‘A
|
||||
@nP+{"n,I>55ś#QM^_`4dWŹ7›cvMSzf)5 ‹†—W#-„33_Ds41p<31>‡„
|
||||
@PxrnP7~Ž_śy!6ždiq9|’‘H‚’7b…v5QI42sF–<46>ź’e ™}#M
|
||||
@<)4ś?P}noL.{>_śy!6ždnz3|<7C>…H<E280A6><48>0,‚34QIng}s‰<73>H—–&*V`=WKw41p<31>‡„
|
||||
@!6ždzf.5’ŤH‡„ b—`vZB}u(y’‘R
|
||||
@ś“+^ŠI“YWZAP
|
||||
@ź‘.RŽMžNWZAP
|
||||
@)„,“abqF$š“š b„r"[‡pz2w„ŽŤ W#-„37]Sr{35”‡<E2809D>ž–<b…r WI|4uo<75><6F>‡RJe,™}3—
|
||||
@5‚#aM^_O4R852™}3PS;z<f’‹†—„6bź}0RR~z>p”NHNWtbK38WD~fq5XBYRJe,—`"WBi4uc‡Žť—„e “g![Bu4m;WB‰ś“esF3%VHnx95‚ŤA
|
||||
@!pb2v0_Rw`}`<60>†Ť $6“avMW~w4tŠBžť›0/“3&_Uzy8a<38><61>›
|
||||
@+e<_śyŽ™„,“abqF…š“<C5A1>,6Ź3;KKo}-yʇš
|
||||
@,4,“aM^_`›K!pb z%]Hh})lFŹťž<C5A5>,2šz3L
|
||||
@#aM^_`›KŽ_3V3•_U;p<x‡…ŤR‡ 0V~?RKrg8v‰ŚŚ
|
||||
@+e>o.yŽ™„,“aMqpB8—“ 1‚a?_I;p<x‡…ŤR‡ 0V~?RKrg8v‰ŚŚ
|
||||
@ś“aM^_`›KŽp3Vp7SBiu}p „Ť‘<C5A4>e+<2B>w3F
|
||||
@"aM^_`›KŽ_3V3…U^;w2y‰—š
|
||||
@“mU5†O‹śyŽ™„,“abqF5<46>ś“6!„v3P‡vu)p”‹‰žW1-Vf%[
|
||||
@j-I>™„,“aM^_O4R$*7<>wvwc;{;5<>Śś Že,™z%[
|
||||
@xooP›KŽ_śyŽ™+<2B>;G2`<60>†H;3e-<2D>33FNo43zŹ‘Ť
|
||||
@<_śyŽ™„,“abqF'†•ž+'V}9WT~44{‚‡<E2809A>
|
||||
@>™„,“aM^_`4dW(#‚v$WFw44{‚‡<E2809A>
|
||||
@)(ž#Q}rjP+{"n,I>)(ž#Q}n_`›d!e‘‚r$JNus}x‰ŚŤ‹W,,V}3JPtf65‹ŤŚ—Wm$™av[Fx|}fŤ‹„žW)' v:—
|
||||
@=ośyŽ™„,<N}F’<46>š†ž+%Vg?SB;}35<33>‡ś…<C59B>7)V~9Z‡33‰t<E280B0>EA
|
||||
@=ośyŽ™„,<N}F’<46>š†ž+%Vg?SB;}35<33>‡ś…<C59B>7)V~9Z‡33›zžEA
|
||||
@+<2B>;F8e‡‹šR”*1‚30QU;q<vŽB†—<E280A0>e%—~3žSbd85N<35>š—“e2“av›‡u0t<30>‡A
|
||||
@5™?PxrhN.g9q)U971 $OxrhN.
|
||||
@<N}G<><47>‡„’7;Vp9MS;r2gF‡‰‘źe,“gvYFvq}aź’Ť
|
||||
@(4ś#M|noP7z>o,U?)4ś?P}noL*{>o0H>)4
|
||||
@3V3•_U;g2s’ŚŤ<C59A>„e$—p"QU;r2gF‡‰‘źe,“gvYFvq}aź’Ť
|
||||
@?74 "OxrnN.g?q)U?71 "OxrnN.
|
||||
@p3VMxv<78>gŽ`=>’;/o2}žk9iY•$.3‰~9.9s‹.|eO{A#;+@|*c:<Ťwia
|
||||
@<74 O}rnN+g?q,U?74 "O}rnN+
|
||||
@<N}F…Ťš—W1#„t3JT;r2gF‡‰‘źe,“gvYFvq}aź’Ť
|
||||
@+g=s)I")(ś?W}rmT+
|
||||
@go`›KŽ_śV!vnNx(eF<65>Ť<EFBFBD>‡$5<>3;WI;`4x<34>B@<40>’&-<2D>w%—
|
||||
@/4,“aM^_O4R',!ťf&žU~g-t‘ŚHź–=b“k"LF;`4x<34>B@<40>’&-<2D>w%—
|
||||
@O>™„,“aMqpB,—š*b„r5[‡iu3~F‡™‡ž3#šv8J
|
||||
@<™„,“aMqpB,—š*b—a;QRi41p<31>‡„
|
||||
@Q›KŽ_śy!6žc~y25–Ťź—…e.“e3R
|
||||
@SM^_`›K!pb2v;Q‡tr;p<>‘<EFBFBD>„’e.“e3R
|
||||
@bqF-<2D>‚<EFBFBD>+'<27>g%žSsu)5‡’<E280A1>—–7bź}vZBv{}r‡ŹŤ
|
||||
@(2
|
||||
@(6
|
||||
@+6
|
||||
@(=
|
||||
@,
|
||||
@3V32[Aza1aF%š“<C5A1>,6Ź3›KKo}-yʇš
|
||||
@*
|
||||
@V!vxKrw}f‰—†–W!'šr/M
|
||||
@>_śyŽ™„<E284A2><4™pŠ<70>‘R_,,V`3]Hup.<F Ť”<C5A4>7'V`9KI49`”‹†•W50“>%SFx}sŠ‹‹
|
||||
@ś“aM^_`4dW<64>'šr/žŹrz}f<><66>‡ś“6kVq3XHiq}f‰—†–W!7„z8Y‡k{.aK‘…“”.b<>?]
|
||||
@o`›KŽ_śV!vzBwu$5N‹†R„ !™}2MŽ;v8s‰<73>ŤR„*7<>wvZRi}3rFE†ť<E280A0>e+<2B>32[Jt3}sŠ‹‹
|
||||
@4,“aM^_O4R3 .—jv–Nu4.p…Ť†–„lb”v0QU~4.z“ŚŚR“00ź}1žWtg)8‚‡…ťW6.źw3MOtc}sŠ‹‹
|
||||
|
|
@ -0,0 +1 @@
|
|||
abcdef
|
||||
|
|
@ -0,0 +1 @@
|
|||
Placeholder file for CD check...
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
.\DATA\MINICD
|
||||
.
|
||||
Full
|
||||
English
|
||||
..\CARMA
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -719,6 +719,10 @@ extern const char UnityStrErrShorthand[];
|
|||
#define UNITY_BEGIN() UnityBegin(__FILE__)
|
||||
#endif
|
||||
|
||||
#ifndef UNITY_PARSE_OPTS
|
||||
#define UNITY_PARSE_OPTS() UnityParseOptions(argc, argv)
|
||||
#endif
|
||||
|
||||
#ifndef UNITY_END
|
||||
#define UNITY_END() UnityEnd()
|
||||
#endif
|
||||
|
|
@ -737,10 +741,8 @@ extern const char UnityStrErrShorthand[];
|
|||
* Command Line Argument Support
|
||||
*-----------------------------------------------*/
|
||||
|
||||
#ifdef UNITY_USE_COMMAND_LINE_ARGS
|
||||
int UnityParseOptions(int argc, char** argv);
|
||||
int UnityTestMatches(void);
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------
|
||||
* Basic Fail and Ignore
|
||||
|
|
|
|||
27
test/main.c
27
test/main.c
|
|
@ -1,12 +1,17 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define UNITY_USE_COMMAND_LINE_ARGS 1
|
||||
|
||||
#include "framework/unity.h"
|
||||
|
||||
#include "CORE/V1DB/dbsetup.h"
|
||||
|
||||
#include "common/globvars.h"
|
||||
#include "new/stack_trace_handler.h"
|
||||
|
||||
#define debug(format_, ...) fprintf(stderr, format_, __VA_ARGS__)
|
||||
|
||||
|
|
@ -22,19 +27,31 @@ extern void test_fwsetup_suite();
|
|||
extern void test_resource_suite();
|
||||
|
||||
void setUp(void) {
|
||||
strcpy(gApplication_path, "/tmp");
|
||||
strcpy(gDir_separator, "/");
|
||||
|
||||
BrV1dbBeginWrapper_Float();
|
||||
}
|
||||
|
||||
void tearDown(void) {
|
||||
}
|
||||
|
||||
int main(int pArgc, char** pArgv) {
|
||||
void setupGlobalVars() {
|
||||
strcpy(gDir_separator, "/");
|
||||
getcwd(gApplication_path, 256);
|
||||
strcat(gApplication_path, "/DATA");
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
|
||||
UNITY_BEGIN();
|
||||
|
||||
if (UnityParseOptions(argc, argv) != 0) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
set_signal_handler(argv[0]);
|
||||
|
||||
setupGlobalVars();
|
||||
|
||||
BrV1dbBeginWrapper_Float();
|
||||
|
||||
// BRSRC13
|
||||
test_brlists_suite();
|
||||
test_fwsetup_suite();
|
||||
|
|
|
|||
Loading…
Reference in New Issue