mirror of
https://github.com/OpenDriver2/REDRIVER2.git
synced 2024-11-25 03:42:34 +01:00
- initial commit
This commit is contained in:
commit
eba0bbff65
21
.gitignore
vendored
Normal file
21
.gitignore
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
*.tlog
|
||||
*.layout
|
||||
*.sdf
|
||||
*.opendb
|
||||
*.idb
|
||||
*.obj
|
||||
*.log
|
||||
*.vcxproj.user
|
||||
*.pdb
|
||||
*.pch
|
||||
*.obj*
|
||||
*.db
|
||||
*.ipch
|
||||
*.suo
|
||||
*.exe
|
||||
*.ilk
|
||||
libs/
|
||||
game/
|
||||
symdump-decompile/
|
||||
PSX_BINS/
|
||||
xmplayer/
|
3
dump.bat
Normal file
3
dump.bat
Normal file
@ -0,0 +1,3 @@
|
||||
dotnet run symdump.dll driver2.sym
|
||||
rem > dism.txt 2>&1
|
||||
pause
|
540
dump_music/dump_music.cpp
Normal file
540
dump_music/dump_music.cpp
Normal file
@ -0,0 +1,540 @@
|
||||
#include <iostream>
|
||||
#include <Windows.h>
|
||||
|
||||
// WAV file header and smpl-chunk template - Quick and dirty solution because I'm lazy
|
||||
int wavHeader[11] = {
|
||||
0x46464952, 0, 0x45564157, 0x20746D66,
|
||||
0x10, 0x10001, 0, 0,
|
||||
0x100002, 0x61746164, 0
|
||||
};
|
||||
|
||||
int smplChunk[17] = {
|
||||
0x6C706D73, 0x3C, 0, 0,
|
||||
0x1D316, 0x3C, 0, 0,
|
||||
0, 1, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0
|
||||
};
|
||||
|
||||
// PSX ADPCM coefficients
|
||||
const double K0[5] = { 0, 0.9375, 1.796875, 1.53125, 1.90625 };
|
||||
const double K1[5] = { 0, 0, -0.8125, -0.859375, -0.9375 };
|
||||
|
||||
// PSX ADPCM decoding routine - decodes a single sample
|
||||
short vagToPcm(unsigned char soundParameter, int soundData, double* vagPrev1, double* vagPrev2)
|
||||
{
|
||||
int resultInt = 0;
|
||||
double dTmp1 = 0.0;
|
||||
double dTmp2 = 0.0;
|
||||
double dTmp3 = 0.0;
|
||||
|
||||
if (soundData > 7) soundData -= 16;
|
||||
|
||||
dTmp1 = (double)soundData * pow(2, (double)(12 - (soundParameter & 0x0F)));
|
||||
|
||||
dTmp2 = (*vagPrev1) * K0[(soundParameter >> 4) & 0x0F];
|
||||
dTmp3 = (*vagPrev2) * K1[(soundParameter >> 4) & 0x0F];
|
||||
|
||||
(*vagPrev2) = (*vagPrev1);
|
||||
(*vagPrev1) = dTmp1 + dTmp2 + dTmp3;
|
||||
|
||||
resultInt = (int)round((*vagPrev1));
|
||||
|
||||
if (resultInt > 32767) resultInt = 32767;
|
||||
if (resultInt < -32768) resultInt = -32768;
|
||||
|
||||
return (short)resultInt;
|
||||
}
|
||||
|
||||
// Main decoding routine - Takes PSX ADPCM formatted audio data and converts it to PCM. It also extracts the looping information if used.
|
||||
void decodeSound(unsigned char* iData, short* oData, int soundSize, int* loopStart, int* loopLength)
|
||||
{
|
||||
unsigned char sp = 0;
|
||||
int sd = 0;
|
||||
double vagPrev1 = 0.0;
|
||||
double vagPrev2 = 0.0;
|
||||
int k = 0;
|
||||
|
||||
for (int i = 0; i < soundSize; i++)
|
||||
{
|
||||
if (i % 16 == 0)
|
||||
{
|
||||
sp = iData[i];
|
||||
if ((iData[i + 1] & 0x0E) == 6) (*loopStart) = k;
|
||||
if ((iData[i + 1] & 0x0F) == 3 || (iData[i + 1] & 0x0F) == 7) (*loopLength) = (k + 28) - (*loopStart);
|
||||
i += 2;
|
||||
}
|
||||
sd = (int)iData[i] & 0x0F;
|
||||
oData[k++] = vagToPcm(sp, sd, &vagPrev1, &vagPrev2);
|
||||
sd = ((int)iData[i] >> 4) & 0x0F;
|
||||
oData[k++] = vagToPcm(sp, sd, &vagPrev1, &vagPrev2);
|
||||
}
|
||||
}
|
||||
|
||||
void XM_Sample2Delta(short *p, int len)
|
||||
{
|
||||
short news, olds;
|
||||
|
||||
news = 0;
|
||||
for (int i = 0; i < len; ++i)
|
||||
{
|
||||
olds = p[i];
|
||||
p[i] -= news;
|
||||
news = olds;
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
#define XM_SONGS 8
|
||||
|
||||
#define XM_INSTR_HEADER_SIZE 263
|
||||
#define XM_MAX_CHANNELS 32
|
||||
|
||||
struct song_t
|
||||
{
|
||||
int xm_offset;
|
||||
int bank_offset;
|
||||
};
|
||||
|
||||
struct SAMPLE_DATA
|
||||
{
|
||||
unsigned long address;
|
||||
unsigned long length;
|
||||
unsigned long loop;
|
||||
unsigned long samplerate;
|
||||
};
|
||||
|
||||
struct PCMSample
|
||||
{
|
||||
short* data;
|
||||
int length;
|
||||
int loopStart;
|
||||
int loopLength;
|
||||
};
|
||||
|
||||
struct XM_Note
|
||||
{
|
||||
unsigned char note;
|
||||
unsigned char inst;
|
||||
unsigned char volc;
|
||||
unsigned char efft;
|
||||
unsigned char effp;
|
||||
};
|
||||
|
||||
#pragma pack(push,1)
|
||||
|
||||
struct XM_SampleHeader
|
||||
{
|
||||
int32_t len, repS, repL;
|
||||
uint8_t vol;
|
||||
int8_t fine;
|
||||
uint8_t typ, pan;
|
||||
int8_t relTon;
|
||||
uint8_t reserved;
|
||||
char name[22];
|
||||
};
|
||||
|
||||
struct XM_InstHeaeder
|
||||
{
|
||||
uint32_t instrSize;
|
||||
char name[22];
|
||||
uint8_t typ;
|
||||
int16_t antSamp;
|
||||
int32_t sampleSize;
|
||||
uint8_t ta[96];
|
||||
int16_t envVP[12][2], envPP[12][2];
|
||||
uint8_t envVPAnt, envPPAnt;
|
||||
uint8_t envVSust, envVRepS, envVRepE;
|
||||
uint8_t envPSust, envPRepS, envPRepE;
|
||||
uint8_t envVTyp, envPTyp;
|
||||
uint8_t vibTyp, vibSweep, vibDepth, vibRate;
|
||||
uint16_t fadeOut;
|
||||
uint8_t midiOn, midiChannel;
|
||||
int16_t midiProgram, midiBend;
|
||||
int8_t mute;
|
||||
uint8_t reserved[15];
|
||||
XM_SampleHeader samp[16];
|
||||
};
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
int DecompressAndRestoreXM(char* destXM, char* xmData, int srcSize, PCMSample* samples)
|
||||
{
|
||||
char* destOrig = destXM;
|
||||
char* srcOrig = xmData;
|
||||
|
||||
memcpy(destXM, xmData, 336);
|
||||
|
||||
unsigned short* version = (unsigned short*)(&destXM[58]);
|
||||
|
||||
// check if it's an XMPlay version (superpacked)
|
||||
if (*version != 0xDDBA)
|
||||
{
|
||||
memcpy(destXM, xmData, srcSize);
|
||||
return srcSize;
|
||||
}
|
||||
|
||||
printf("Decompressing XM...\n");
|
||||
|
||||
// convert XM to standard version
|
||||
*version = 0x104;
|
||||
|
||||
destXM += 336; // go to patterns
|
||||
xmData += 68;
|
||||
|
||||
short numChannels = *(short*)xmData; xmData += 2;
|
||||
short numPatterns = *(short*)xmData; xmData += 2;
|
||||
short numInstruments = *(short*)xmData; xmData += 264; // skip other header data since it's not changed
|
||||
|
||||
printf("channel count: %d\n", numChannels);
|
||||
|
||||
printf("Unpacking %d patterns\n", numPatterns);
|
||||
|
||||
XM_Note rowNotes[XM_MAX_CHANNELS]; // more for safety
|
||||
|
||||
for (int i = 0; i < numPatterns; i++)
|
||||
{
|
||||
xmData += 5;
|
||||
int pattLen = *(short*)xmData;
|
||||
xmData -= 5;
|
||||
|
||||
memcpy(destXM, xmData, 7); // copy pattern header properties
|
||||
destXM += 7;
|
||||
xmData += 7;
|
||||
|
||||
short patternSize = *(short*)xmData;
|
||||
xmData += sizeof(short); // now pattern data itself
|
||||
|
||||
short* unpackedPatternSize = (short*)destXM;
|
||||
destXM += sizeof(short);
|
||||
|
||||
// no empty reads
|
||||
if (patternSize == 0)
|
||||
continue;
|
||||
|
||||
char* pattStartSrc = xmData;
|
||||
char* pattStart = destXM;
|
||||
|
||||
for (int r = 0; r < pattLen; r++)
|
||||
{
|
||||
// zero full channel size double from current position
|
||||
memset(rowNotes, 0, sizeof(rowNotes));
|
||||
|
||||
while (1)
|
||||
{
|
||||
// don't overflow reading
|
||||
if ((xmData - pattStartSrc) >= patternSize)
|
||||
break;
|
||||
|
||||
unsigned char patdat = *xmData++;
|
||||
|
||||
if (patdat == 0xFF) // channel end
|
||||
break;
|
||||
|
||||
unsigned char data = 0;
|
||||
|
||||
XM_Note& xmnote = rowNotes[patdat];
|
||||
|
||||
// unpack it fully
|
||||
unsigned char note = *xmData++;
|
||||
if (note & 0x80)
|
||||
{
|
||||
data = 0; if (note & 0x01) data = *xmData++; xmnote.note = data;
|
||||
data = 0; if (note & 0x02) data = *xmData++; xmnote.inst = data;
|
||||
data = 0; if (note & 0x04) data = *xmData++; xmnote.volc = data;
|
||||
data = 0; if (note & 0x08) data = *xmData++; xmnote.efft = data;
|
||||
data = 0; if (note & 0x10) data = *xmData++; xmnote.effp = data;
|
||||
}
|
||||
else
|
||||
{
|
||||
xmnote.note = note;
|
||||
xmnote.inst = *xmData++;
|
||||
xmnote.volc = *xmData++;
|
||||
xmnote.efft = *xmData++;
|
||||
xmnote.effp = *xmData++;
|
||||
}
|
||||
}
|
||||
|
||||
// pack notes again
|
||||
for (int c = 0; c < numChannels; c++)
|
||||
{
|
||||
XM_Note& xmnote = rowNotes[c];
|
||||
|
||||
if (xmnote.note > 0 &&
|
||||
xmnote.inst > 0 &&
|
||||
xmnote.volc > 0 &&
|
||||
xmnote.efft > 0 &&
|
||||
xmnote.effp > 0)
|
||||
{
|
||||
// write full note
|
||||
memcpy(destXM, &xmnote, sizeof(XM_Note));
|
||||
destXM += sizeof(XM_Note);
|
||||
}
|
||||
else
|
||||
{
|
||||
char* packedFlag = destXM++;
|
||||
|
||||
*packedFlag = 0x80;
|
||||
|
||||
if (xmnote.note > 0) { *destXM++ = xmnote.note; *packedFlag |= 0x01; }
|
||||
if (xmnote.inst > 0) { *destXM++ = xmnote.inst; *packedFlag |= 0x02; }
|
||||
if (xmnote.volc > 0) { *destXM++ = xmnote.volc; *packedFlag |= 0x04; }
|
||||
if (xmnote.efft > 0) { *destXM++ = xmnote.efft; *packedFlag |= 0x08; }
|
||||
if (xmnote.effp > 0) { *destXM++ = xmnote.effp; *packedFlag |= 0x10; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*unpackedPatternSize = destXM - pattStart;
|
||||
}
|
||||
|
||||
printf("instrument count: %d\n", numInstruments);
|
||||
|
||||
for (int i = 0; i < numInstruments; i++)
|
||||
{
|
||||
char* instStart = xmData;
|
||||
|
||||
XM_InstHeaeder* instr = (XM_InstHeaeder*)xmData;
|
||||
|
||||
{
|
||||
int readSize = instr->instrSize;
|
||||
if ((readSize < 4) || (readSize > XM_INSTR_HEADER_SIZE))
|
||||
readSize = XM_INSTR_HEADER_SIZE;
|
||||
|
||||
if (instr->instrSize > XM_INSTR_HEADER_SIZE)
|
||||
readSize += instr->instrSize - XM_INSTR_HEADER_SIZE;
|
||||
|
||||
printf("instr %d size: %d readSize: %d\n", i, instr->instrSize, readSize);
|
||||
|
||||
memcpy(destXM, xmData, readSize);
|
||||
|
||||
xmData += readSize;
|
||||
destXM += readSize;
|
||||
}
|
||||
|
||||
printf("instr name: %s\n", instr->name);
|
||||
printf("sample count: %d\n", instr->antSamp);
|
||||
|
||||
// since the XMPlay for PSX does not
|
||||
// support more than one samples, we don't bother...
|
||||
if (instr->antSamp > 0)
|
||||
{
|
||||
//if (i == 17)
|
||||
// printf("flash!\n");
|
||||
|
||||
printf("sample: %s typ %d\n", instr->samp[0].name, instr->samp[0].typ);
|
||||
|
||||
// samples are direct to the instrument number,
|
||||
// so we don't bother here too...
|
||||
PCMSample& sample = samples[i];
|
||||
|
||||
if ((instr->samp[0].typ & 0x16))
|
||||
{
|
||||
instr->samp[0].len = sample.length * sizeof(short);
|
||||
instr->samp[0].repS = sample.loopStart * sizeof(short);
|
||||
instr->samp[0].repL = sample.loopLength * sizeof(short);
|
||||
}
|
||||
|
||||
// write headers
|
||||
int readSize = instr->antSamp * sizeof(XM_SampleHeader);
|
||||
|
||||
memcpy(destXM, xmData, readSize);
|
||||
xmData += readSize;
|
||||
destXM += readSize;
|
||||
|
||||
if ((instr->samp[0].typ & 0x16))
|
||||
{
|
||||
// right after the instrument data comes the sample data
|
||||
// there is nothing to read, but there is something to write...
|
||||
XM_Sample2Delta(sample.data, sample.length);
|
||||
|
||||
memcpy(destXM, sample.data, sample.length * sizeof(short));
|
||||
destXM += sample.length * sizeof(short);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int remainingStart = (xmData - srcOrig);
|
||||
int remaining = srcSize - remainingStart;
|
||||
|
||||
// copy remaining data
|
||||
memcpy(destXM, xmData, remaining);
|
||||
destXM += remaining;
|
||||
|
||||
return destXM-destOrig;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
if (argc <= 1)
|
||||
return -1;
|
||||
|
||||
char* fileName = argv[1];
|
||||
|
||||
FILE* fp = fopen(fileName, "rb");
|
||||
|
||||
if (!fp)
|
||||
{
|
||||
printf("No such file '%s'!", fileName);
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("Loading '%s'...\n", fileName);
|
||||
|
||||
//char songPath[_MAX_PATH];
|
||||
char tmpString[_MAX_PATH];
|
||||
|
||||
// max 80 samples per bank
|
||||
PCMSample pcmSamples[80];
|
||||
song_t songs[XM_SONGS];
|
||||
int numBankSamples = 0;
|
||||
|
||||
// read song offsets
|
||||
fread(songs, sizeof(song_t), XM_SONGS, fp);
|
||||
|
||||
for (int i = 0; i < XM_SONGS; i++)
|
||||
{
|
||||
const song_t& offsets = songs[i];
|
||||
|
||||
int songSize = offsets.bank_offset - offsets.xm_offset;
|
||||
|
||||
printf("--- XM song %d at %d (size %d) ---\n", i, offsets.xm_offset, songSize);
|
||||
|
||||
// create folder for song
|
||||
//sprintf_s(songPath, "%s_song_%d", fileName, i);
|
||||
//CreateDirectoryA(songPath, NULL); // Create the sound bank directory
|
||||
|
||||
// Read XM and store to separate file
|
||||
fseek(fp, offsets.xm_offset, SEEK_SET);
|
||||
|
||||
char* xmData = (char*)malloc(songSize);
|
||||
fread(xmData, songSize, 1, fp);
|
||||
|
||||
// Read sound bank and then convert it using vabdecode
|
||||
fseek(fp, offsets.bank_offset, SEEK_SET);
|
||||
|
||||
fread(&numBankSamples, sizeof(int), 1, fp);
|
||||
|
||||
SAMPLE_DATA* sampleDescs = new SAMPLE_DATA[numBankSamples];
|
||||
fread(sampleDescs, sizeof(SAMPLE_DATA), numBankSamples, fp);
|
||||
|
||||
memset(pcmSamples, 0, sizeof(PCMSample)*80);
|
||||
|
||||
int bankSamplesOffset = ftell(fp);
|
||||
|
||||
printf("bank sounds: %d\n", numBankSamples);
|
||||
|
||||
for (int j = 0; j < numBankSamples; j++)
|
||||
{
|
||||
SAMPLE_DATA& sample = sampleDescs[j];
|
||||
PCMSample& pcmSample = pcmSamples[j];
|
||||
|
||||
if (sample.loop == 0)
|
||||
sample.length -= 16;
|
||||
|
||||
if (sample.length == 0)
|
||||
continue;
|
||||
|
||||
// read VAG and convert to ADPCM
|
||||
{
|
||||
unsigned char* iData = (unsigned char*)malloc(sample.length);
|
||||
|
||||
pcmSample.length = (sample.length >> 4) * 28;
|
||||
pcmSample.data = new short[pcmSample.length];
|
||||
|
||||
fseek(fp, bankSamplesOffset + sample.address, SEEK_SET);
|
||||
fread(iData, sizeof(char), sample.length, fp); // Read the audio data
|
||||
|
||||
decodeSound(iData, pcmSample.data, sample.length, &pcmSample.loopStart, &pcmSample.loopLength);
|
||||
|
||||
free(iData);
|
||||
|
||||
printf("sample %d rate=%d loop=%d size=%d\n", j, sample.samplerate, sample.loop, pcmSample.length);
|
||||
}
|
||||
|
||||
/*
|
||||
{
|
||||
// Prepare the WAV file header
|
||||
wavHeader[1] = pcmSample.length * sizeof(short) + 36; // Size of the "RIFF" chunk
|
||||
|
||||
if (pcmSample.loopLength > 0)
|
||||
wavHeader[1] += 68;
|
||||
|
||||
wavHeader[6] = sample.samplerate; // Sampling rate
|
||||
wavHeader[7] = sample.samplerate * sizeof(short); // Average bytes per second (sample rate * sample size * channel count)
|
||||
wavHeader[10] = pcmSample.length * sizeof(short); // Size of the "data" chunk
|
||||
|
||||
char outputFile[256];
|
||||
snprintf(outputFile, sizeof(outputFile), "%s\\%d.wav", songPath, j);
|
||||
|
||||
FILE* fp2;
|
||||
fp2 = fopen(outputFile, "wb");
|
||||
|
||||
if (fp2)
|
||||
{
|
||||
// Write WAV file header, the converted audio data, and the loop positions if used
|
||||
fwrite(&wavHeader, sizeof(int), 11, fp2);
|
||||
fwrite(pcmSample.data, sizeof(short), pcmSample.length, fp2);
|
||||
|
||||
if (pcmSample.loopLength > 0)
|
||||
{
|
||||
smplChunk[13] = pcmSample.loopStart;
|
||||
smplChunk[14] = pcmSample.loopStart + pcmSample.loopLength;
|
||||
fwrite(&smplChunk, sizeof(int), 17, fp2);
|
||||
}
|
||||
|
||||
fclose(fp2);
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
// restore XM and save to disk
|
||||
{
|
||||
printf("--- XM song %d ---\n", i);
|
||||
sprintf_s(tmpString, "%s_song%d.xm", fileName, i);
|
||||
|
||||
FILE* xmFp = fopen(tmpString, "wb");
|
||||
|
||||
if (xmFp)
|
||||
{
|
||||
|
||||
// calculate new XM size according to samples
|
||||
int addSize = 0;
|
||||
|
||||
for (int j = 0; j < numBankSamples; j++)
|
||||
{
|
||||
//printf("sample %d rate=%d loop=%d size=%d\n", j, sample.samplerate, sample.loop, sample.length);
|
||||
addSize += pcmSamples[j].length * sizeof(short);
|
||||
}
|
||||
|
||||
int calculatedXMSize = songSize * 4 + addSize;
|
||||
|
||||
// decompress
|
||||
char* newXMData = (char*)malloc(calculatedXMSize); // the new size is pretty hardcoded setting
|
||||
|
||||
songSize = DecompressAndRestoreXM(newXMData, xmData, songSize, pcmSamples);
|
||||
|
||||
free(xmData);
|
||||
xmData = newXMData;
|
||||
|
||||
fwrite(xmData, 1, songSize, xmFp);
|
||||
fclose(xmFp);
|
||||
}
|
||||
|
||||
free(xmData);
|
||||
}
|
||||
|
||||
// free samples
|
||||
for (int j = 0; j < numBankSamples; j++)
|
||||
{
|
||||
delete[] pcmSamples[j].data;
|
||||
pcmSamples[j].data = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
}
|
157
dump_music/dump_music.vcxproj
Normal file
157
dump_music/dump_music.vcxproj
Normal file
@ -0,0 +1,157 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>15.0</VCProjectVersion>
|
||||
<ProjectGuid>{E82851E6-2037-4D5A-9C8B-910DBCD09783}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>dumpmusic</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="dump_music.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
22
dump_music/dump_music.vcxproj.filters
Normal file
22
dump_music/dump_music.vcxproj.filters
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Исходные файлы">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Файлы заголовков">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Файлы ресурсов">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="dump_music.cpp">
|
||||
<Filter>Исходные файлы</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
30
src/C/ai.c
Normal file
30
src/C/ai.c
Normal file
@ -0,0 +1,30 @@
|
||||
|
||||
/*
|
||||
* Offset 0x1BAF8
|
||||
* D:\driver2\game\C\AI.C (line 324)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ TannerStuckInCar(int doSpeedCheck /*$a0*/)
|
||||
{ // line 1, address 0x1baf8
|
||||
struct _CAR_DATA *cp; // $a2
|
||||
} // line 17, address 0x1bc20
|
||||
/*
|
||||
* Offset 0x1BC20
|
||||
* D:\driver2\game\C\AI.C (line 275)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ StoreGameFlags()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1BC50
|
||||
* D:\driver2\game\C\AI.C (line 297)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ TannerCanEnterCar(struct _CAR_DATA *cp /*$a0*/, int distToCarSq /*$a1*/)
|
||||
{ // line 1, address 0x1bc50
|
||||
{ // line 13, address 0x1bce4
|
||||
struct SVECTOR *carCollBox; // $v0
|
||||
int carRange; // $a0
|
||||
} // line 20, address 0x1bd34
|
||||
} // line 23, address 0x1bd3c
|
41
src/C/bcoll3d.c
Normal file
41
src/C/bcoll3d.c
Normal file
@ -0,0 +1,41 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x1C1C8
|
||||
* D:\driver2\game\C\BCOLL3D.C (line 83)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0
|
||||
*/
|
||||
void /*$ra*/ PointFaceCheck(struct _CAR_DATA *cp0 /*$t7*/, struct _CAR_DATA *cp1 /*$t8*/, int i /*$t9*/, struct TestResult *least /*$a3*/, int nSign /*stack 16*/)
|
||||
{ // line 1, address 0x1c1c8
|
||||
int k; // $t5
|
||||
struct VECTOR normal; // stack address -56
|
||||
struct VECTOR diff; // stack address -40
|
||||
struct VECTOR point; // stack address -24
|
||||
int depth; // $t0
|
||||
{ // line 23, address 0x1c2b8
|
||||
int partialDepth; // $v1
|
||||
} // line 36, address 0x1c354
|
||||
} // line 47, address 0x1c3e8
|
||||
/*
|
||||
* Offset 0x1C3E8
|
||||
* D:\driver2\game\C\BCOLL3D.C (line 153)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ CarCarCollision3(struct _CAR_DATA *c0 /*$a0*/, struct _CAR_DATA *c1 /*$a1*/, int *depth /*$s2*/, struct VECTOR *where /*$s0*/, struct VECTOR *normal /*stack 16*/)
|
||||
{ // line 1, address 0x1c3e8
|
||||
struct TestResult tr; // stack address -56
|
||||
int res; // $t1
|
||||
} // line 12, address 0x1c470
|
||||
/*
|
||||
* Offset 0x1C470
|
||||
* D:\driver2\game\C\BCOLL3D.C (line 133)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
int /*$ra*/ collided3d(struct _CAR_DATA *cp0 /*$s3*/, struct _CAR_DATA *cp1 /*$s2*/, struct TestResult *least /*$s1*/)
|
||||
{ // line 1, address 0x1c470
|
||||
int i; // $s0
|
||||
} // line 18, address 0x1c584
|
169
src/C/bcollide.c
Normal file
169
src/C/bcollide.c
Normal file
@ -0,0 +1,169 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x1C584
|
||||
* D:\driver2\game\C\BCOLLIDE.C (line 120)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 fp
|
||||
*/
|
||||
int /*$ra*/ bcollided2d(struct CDATA2D *body /*$t4*/, int needOverlap /*$fp*/)
|
||||
{ // line 1, address 0x1c584
|
||||
struct VECTOR delta; // stack address -56
|
||||
int dtheta; // $v1
|
||||
int ac; // $s6
|
||||
int as; // $s5
|
||||
int i; // $t7
|
||||
int j; // $a2
|
||||
int k; // $t5
|
||||
{ // line 40, address 0x1c7a0
|
||||
int xover; // $t0
|
||||
int zover; // $a0
|
||||
int tmp2; // $a2
|
||||
int FE; // $a3
|
||||
} // line 63, address 0x1c8f8
|
||||
} // line 65, address 0x1c928
|
||||
/*
|
||||
* Offset 0x1C928
|
||||
* D:\driver2\game\C\BCOLLIDE.C (line 195)
|
||||
* Stack frame base $sp, length 8
|
||||
* Saved registers at address -4: s0 s1
|
||||
*/
|
||||
void /*$ra*/ bFindCollisionPoint(struct CDATA2D *body /*$t6*/, struct CRET2D *collisionResult /*$s0*/)
|
||||
{ // line 1, address 0x1c928
|
||||
int carBarrierCollision; // $s1
|
||||
int i; // $a3
|
||||
int j; // $v1
|
||||
int k; // $t0
|
||||
int smallest; // $t4
|
||||
int besti; // $t5
|
||||
int bestk; // $t7
|
||||
int sign; // $t3
|
||||
int sign0; // $t0
|
||||
int sign1; // $a3
|
||||
{ // line 17, address 0x1c9cc
|
||||
int upper; // $a1
|
||||
int lower; // $v1
|
||||
} // line 33, address 0x1ca24
|
||||
{ // line 40, address 0x1ca58
|
||||
int upper; // $a1
|
||||
int lower; // $a0
|
||||
} // line 54, address 0x1cac8
|
||||
} // line 78, address 0x1cc98
|
||||
/*
|
||||
* Offset 0x1CC98
|
||||
* D:\driver2\game\C\BCOLLIDE.C (line 275)
|
||||
* Stack frame base $sp, length 264
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ bFindCollisionTime(struct CDATA2D *cd /*$s5*/, struct CRET2D *collisionResult /*stack 4*/)
|
||||
{ // line 1, address 0x1cc98
|
||||
int i; // $s4
|
||||
int q; // $s0
|
||||
int hit; // $t2
|
||||
int neverfree; // $fp
|
||||
int time; // $s1
|
||||
int step; // $s3
|
||||
struct CDATA2D original[2]; // stack address -248
|
||||
} // line 82, address 0x1cf54
|
||||
/*
|
||||
* Offset 0x1CF54
|
||||
* D:\driver2\game\C\BCOLLIDE.C (line 384)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ApplyDamage(struct _CAR_DATA *cp /*$a0*/, char region /*$a1*/, int value /*$a2*/, char fakeDamage /*$a3*/)
|
||||
{ // line 1, address 0x1cf54
|
||||
short *pRegion; // $t0
|
||||
} // line 81, address 0x1d118
|
||||
/*
|
||||
* Offset 0x1D118
|
||||
* D:\driver2\game\C\BCOLLIDE.C (line 470)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
int /*$ra*/ DamageCar3D(struct _CAR_DATA *cp /*$s1*/, long *delta[4] /*$t4*/, int strikeVel /*$t6*/, struct _CAR_DATA *pOtherCar /*$s2*/)
|
||||
{ // line 1, address 0x1d118
|
||||
int l; // $v1
|
||||
int w; // $v0
|
||||
int region; // $a1
|
||||
long nose[4]; // stack address -56
|
||||
long door[4]; // stack address -40
|
||||
int impact; // $s3
|
||||
int QQQ; // $t7
|
||||
{ // line 79, address 0x1d3f0
|
||||
char fakeDamage; // $a3
|
||||
char player_id; // $s0
|
||||
char kludge; // $a3
|
||||
} // line 98, address 0x1d48c
|
||||
} // line 102, address 0x1d4bc
|
||||
/*
|
||||
* Offset 0x1D4BC
|
||||
* D:\driver2\game\C\BCOLLIDE.C (line 587)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ DamageCar(struct _CAR_DATA *cp /*$s2*/, struct CDATA2D *cd /*$s1*/, struct CRET2D *collisionResult /*$s3*/, int strikeVel /*$s0*/)
|
||||
{ // line 1, address 0x1d4bc
|
||||
struct VECTOR delta; // stack address -48
|
||||
int l; // $v1
|
||||
int w; // $v0
|
||||
int region; // $a1
|
||||
int damage; // $a2
|
||||
char player_id; // $s5
|
||||
int impact; // $s4
|
||||
int QQQ; // $t0
|
||||
} // line 46, address 0x1d6d0
|
||||
/*
|
||||
* Offset 0x1D6F4
|
||||
* D:\driver2\game\C\BCOLLIDE.C (line 839)
|
||||
* Stack frame base $sp, length 200
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ CarBuildingCollision(struct _CAR_DATA *cp /*$s3*/, struct BUILDING_BOX *building /*$s2*/, struct CELL_OBJECT *cop /*$s6*/, int mightBeABarrier /*$s1*/)
|
||||
{ // line 1, address 0x1d6f4
|
||||
static struct CDATA2D cd[2]; // address 0x0
|
||||
static struct CRET2D collisionResult; // address 0xd0
|
||||
int debris_colour; // stack address -48
|
||||
struct VECTOR tempwhere; // stack address -168
|
||||
struct MODEL *pModel; // $s5
|
||||
int player_id; // stack address -44
|
||||
{ // line 27, address 0x1d7fc
|
||||
struct SVECTOR boxDisp; // stack address -152
|
||||
{ // line 69, address 0x1d95c
|
||||
int wbod; // $a1
|
||||
} // line 79, address 0x1da0c
|
||||
} // line 81, address 0x1da0c
|
||||
{ // line 138, address 0x1dacc
|
||||
{ // line 138, address 0x1dacc
|
||||
struct VECTOR velocity; // stack address -144
|
||||
long pointVel[4]; // stack address -128
|
||||
long reaction[4]; // stack address -112
|
||||
long lever[4]; // stack address -96
|
||||
int strikeVel; // $s1
|
||||
{ // line 175, address 0x1dcc0
|
||||
short scale; // $a2
|
||||
} // line 195, address 0x1dd0c
|
||||
{ // line 211, address 0x1dd6c
|
||||
{ // line 219, address 0x1dd90
|
||||
struct SMASHABLE_OBJECT *sip; // $a1
|
||||
struct SMASHABLE_OBJECT *match; // $s0
|
||||
int chan; // $s1
|
||||
int adjust; // $s2
|
||||
} // line 240, address 0x1dea4
|
||||
} // line 254, address 0x1df2c
|
||||
{ // line 259, address 0x1df5c
|
||||
struct VECTOR LeafPosition; // stack address -80
|
||||
} // line 259, address 0x1df5c
|
||||
{ // line 277, address 0x1dfb8
|
||||
{ // line 280, address 0x1dff8
|
||||
struct VECTOR lamp_velocity; // stack address -64
|
||||
} // line 284, address 0x1e02c
|
||||
} // line 285, address 0x1e02c
|
||||
{ // line 304, address 0x1e0c0
|
||||
int twistY; // $a1
|
||||
int lever_dot_n; // $a0
|
||||
int displacementsquared; // $v1
|
||||
int denom; // $v1
|
||||
} // line 316, address 0x1e1d8
|
||||
} // line 345, address 0x1e3e4
|
||||
} // line 349, address 0x1e3ec
|
||||
} // line 356, address 0x1e450
|
124
src/C/bomberman.c
Normal file
124
src/C/bomberman.c
Normal file
@ -0,0 +1,124 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x1E450
|
||||
* D:\driver2\game\C\BOMBERMAN.C (line 245)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ HandleThrownBombs()
|
||||
{ // line 2, address 0x1e450
|
||||
struct BOMB *bomb; // $s1
|
||||
struct VECTOR velocity; // stack address -48
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
int i; // $s5
|
||||
int y; // $a0
|
||||
{ // line 13, address 0x1e494
|
||||
} // line 56, address 0x1e630
|
||||
{ // line 74, address 0x1e6d8
|
||||
int len; // $v1
|
||||
} // line 85, address 0x1e750
|
||||
} // line 112, address 0x1e850
|
||||
/*
|
||||
* Offset 0x1E878
|
||||
* D:\driver2\game\C\BOMBERMAN.C (line 381)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ DrawThrownBombs()
|
||||
{ // line 2, address 0x1e878
|
||||
struct MATRIX object_matrix; // stack address -80
|
||||
struct MATRIX *finalmatrix; // $s2
|
||||
struct BOMB *bomb; // $s0
|
||||
struct VECTOR pos; // stack address -48
|
||||
int i; // $s3
|
||||
{ // line 16, address 0x1e8d4
|
||||
} // line 33, address 0x1ea00
|
||||
{ // line 39, address 0x1ea1c
|
||||
} // line 43, address 0x1ea44
|
||||
} // line 44, address 0x1ea44
|
||||
/*
|
||||
* Offset 0x1EA68
|
||||
* D:\driver2\game\C\BOMBERMAN.C (line 432)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ BombThePlayerToHellAndBack(int car /*$s3*/)
|
||||
{ // line 1, address 0x1ea68
|
||||
struct BOMB *bomb; // $t3
|
||||
} // line 54, address 0x1eca4
|
||||
/*
|
||||
* Offset 0x1ECC0
|
||||
* D:\driver2\game\C\BOMBERMAN.C (line 496)
|
||||
* Stack frame base $sp, length 232
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ BombCollisionCheck(struct _CAR_DATA *cp /*$a0*/, struct VECTOR *pPos /*$a1*/)
|
||||
{ // line 1, address 0x1ecc0
|
||||
struct CDATA2D cd[2]; // stack address -216
|
||||
int carLength[2]; // stack address -16
|
||||
{ // line 1, address 0x1ecc0
|
||||
} // line 1, address 0x1ecc0
|
||||
} // line 27, address 0x1ed80
|
||||
/*
|
||||
* Offset 0x1ED80
|
||||
* D:\driver2\game\C\BOMBERMAN.C (line 534)
|
||||
* Stack frame base $sp, length 368
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ ExplosionCollisionCheck(struct _CAR_DATA *cp /*$s1*/, struct _ExOBJECT *pE /*$s3*/)
|
||||
{ // line 1, address 0x1ed80
|
||||
struct CDATA2D cd[2]; // stack address -352
|
||||
int carLength[2]; // stack address -152
|
||||
static int setUsed; // address 0x28
|
||||
int tanner; // $s6
|
||||
{ // line 12, address 0x1eddc
|
||||
{ // line 12, address 0x1eddc
|
||||
} // line 12, address 0x1eddc
|
||||
{ // line 19, address 0x1ee74
|
||||
} // line 24, address 0x1eee8
|
||||
{ // line 27, address 0x1eee8
|
||||
int x; // $a1
|
||||
int z; // $v1
|
||||
struct VECTOR *pos; // $v0
|
||||
} // line 66, address 0x1efbc
|
||||
{ // line 89, address 0x1effc
|
||||
struct CRET2D collisionResult; // stack address -144
|
||||
{ // line 92, address 0x1effc
|
||||
struct VECTOR velocity; // stack address -104
|
||||
long pointVel[4]; // stack address -88
|
||||
long reaction[4]; // stack address -72
|
||||
long lever[4]; // stack address -56
|
||||
int strikeVel; // $s0
|
||||
{ // line 154, address 0x1f278
|
||||
} // line 161, address 0x1f2b8
|
||||
{ // line 164, address 0x1f2b8
|
||||
int twistY; // $a1
|
||||
int lever_dot_n; // $a0
|
||||
int displacementsquared; // $v1
|
||||
int denom; // $v1
|
||||
} // line 176, address 0x1f3c8
|
||||
} // line 198, address 0x1f510
|
||||
} // line 199, address 0x1f510
|
||||
} // line 200, address 0x1f510
|
||||
} // line 206, address 0x1f55c
|
||||
/*
|
||||
* Offset 0x1F55C
|
||||
* D:\driver2\game\C\BOMBERMAN.C (line 747)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ AddFlash(struct VECTOR *pos /*$a0*/)
|
||||
{ // line 1, address 0x1f55c
|
||||
int dist; // $a0
|
||||
} // line 14, address 0x1f5d8
|
||||
/*
|
||||
* Offset 0x1F5D8
|
||||
* D:\driver2\game\C\BOMBERMAN.C (line 222)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitThrownBombs()
|
||||
{ // line 2, address 0x1f5d8
|
||||
int i; // $v1
|
||||
} // line 13, address 0x1f65c
|
174
src/C/camera.c
Normal file
174
src/C/camera.c
Normal file
@ -0,0 +1,174 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
VECTOR CameraPos =
|
||||
{ 4294967251, 4294967125, 4294967171, 0 };
|
||||
|
||||
VECTOR camera_position =
|
||||
{ 0, 4294966916, 0, 0 };
|
||||
|
||||
MATRIX face_camera_work =
|
||||
{ { { 4096, 0, 0 }, { 0, 4096, 0 }, { 0, 0, 4096 } }, { 0, 0, 0 } };
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x1F65C
|
||||
* D:\driver2\game\C\CAMERA.C (line 422)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ InitCamera(struct _PLAYER *lp /*$s0*/)
|
||||
{ // line 1, address 0x1f65c
|
||||
struct SVECTOR boxDisp; // stack address -16
|
||||
{ // line 6, address 0x1f684
|
||||
} // line 6, address 0x1f684
|
||||
{ // line 19, address 0x1f714
|
||||
struct _CAR_DATA *lcp; // $a0
|
||||
} // line 19, address 0x1f714
|
||||
{ // line 32, address 0x1f7fc
|
||||
struct _EVENT *event; // $a1
|
||||
} // line 33, address 0x1f7fc
|
||||
} // line 122, address 0x1fa88
|
||||
/*
|
||||
* Offset 0x1FA88
|
||||
* D:\driver2\game\C\CAMERA.C (line 553)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ModifyCamera()
|
||||
{ // line 2, address 0x1fa88
|
||||
struct PAD *locPad; // $a3
|
||||
struct _PLAYER *lp; // $a2
|
||||
{ // line 15, address 0x1fb64
|
||||
char *pNextCameraview; // $a0
|
||||
} // line 25, address 0x1fbb0
|
||||
{ // line 32, address 0x1fbcc
|
||||
int cam_ang; // $a0
|
||||
int length; // $a1
|
||||
} // line 40, address 0x1fc6c
|
||||
} // line 43, address 0x1fc78
|
||||
/*
|
||||
* Offset 0x1FC80
|
||||
* D:\driver2\game\C\CAMERA.C (line 609)
|
||||
* Stack frame base $sp, length 184
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
int /*$ra*/ CameraCollisionCheck()
|
||||
{ // line 2, address 0x1fc80
|
||||
struct MODEL *model; // $v1
|
||||
struct COLLISION_PACKET *collide; // $t2
|
||||
struct CELL_OBJECT *cop; // $t3
|
||||
struct CELL_ITERATOR ci; // stack address -168
|
||||
struct VECTOR nearpoint; // stack address -144
|
||||
struct VECTOR surfacenormal; // stack address -128
|
||||
struct VECTOR surfacepoint; // stack address -112
|
||||
int cell_x; // $a0
|
||||
int cell_z; // $a1
|
||||
int xd; // $v1
|
||||
int zd; // $a0
|
||||
int num_cb; // $t5
|
||||
int box_loop; // $t4
|
||||
int sphere_sq; // $a2
|
||||
int camera_size; // $s0
|
||||
int count; // $s1
|
||||
struct VECTOR temp_cam; // stack address -96
|
||||
{ // line 50, address 0x1fe5c
|
||||
struct MATRIX *mat; // $a2
|
||||
struct VECTOR address; // stack address -80
|
||||
struct VECTOR cam_vec; // stack address -64
|
||||
struct VECTOR normal; // stack address -48
|
||||
int xmin; // $a0
|
||||
int xmax; // $a3
|
||||
int ymin; // $t0
|
||||
int ymax; // $v1
|
||||
int zmin; // $a1
|
||||
int zmax; // $a2
|
||||
int tx; // $a3
|
||||
int tz; // $a1
|
||||
} // line 85, address 0x20038
|
||||
} // line 93, address 0x200a4
|
||||
/*
|
||||
* Offset 0x200A4
|
||||
* D:\driver2\game\C\CAMERA.C (line 777)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ PlaceCameraFollowCar(struct _PLAYER *lp /*$s2*/)
|
||||
{ // line 1, address 0x200a4
|
||||
int carheight; // $a0
|
||||
int minimum_height; // $s1
|
||||
int cammapht; // $s0
|
||||
int new_angle; // $a0
|
||||
int camPosVy; // $s1
|
||||
struct VECTOR locCameraPos; // stack address -48
|
||||
int lbody; // $a0
|
||||
int hbody; // $a3
|
||||
int camExpandSpeed; // $s6
|
||||
{ // line 23, address 0x200f0
|
||||
struct _CAR_DATA *camCar; // $v1
|
||||
} // line 33, address 0x20184
|
||||
} // line 116, address 0x20574
|
||||
/*
|
||||
* Offset 0x20574
|
||||
* D:\driver2\game\C\CAMERA.C (line 987)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ PlaceCameraInCar(struct _PLAYER *lp /*$s3*/, int BumperCam /*$a1*/)
|
||||
{ // line 1, address 0x20574
|
||||
struct _CAR_DATA *cp; // $s2
|
||||
{ // line 57, address 0x20824
|
||||
} // line 58, address 0x20834
|
||||
{ // line 62, address 0x20848
|
||||
} // line 65, address 0x20868
|
||||
} // line 90, address 0x2096c
|
||||
/*
|
||||
* Offset 0x2096C
|
||||
* D:\driver2\game\C\CAMERA.C (line 904)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ PlaceCameraAtLocation(struct _PLAYER *lp /*$s1*/, int zoom /*$s2*/)
|
||||
{ // line 1, address 0x2096c
|
||||
int d; // $s0
|
||||
{ // line 7, address 0x20998
|
||||
struct VECTOR temp; // stack address -32
|
||||
} // line 9, address 0x20998
|
||||
} // line 46, address 0x20a60
|
||||
/*
|
||||
* Offset 0x20A78
|
||||
* D:\driver2\game\C\CAMERA.C (line 716)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ TurnHead(struct _PLAYER *lp /*$a0*/)
|
||||
{ // line 1, address 0x20a78
|
||||
} // line 41, address 0x20b70
|
||||
/*
|
||||
* Offset 0x20B70
|
||||
* D:\driver2\game\C\CAMERA.C (line 960)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ PointAtTarget(struct VECTOR *pPosition /*$a0*/, struct VECTOR *pTarget /*$a1*/, struct SVECTOR *pAngleVec /*$s0*/)
|
||||
{ // line 1, address 0x20b70
|
||||
struct VECTOR delta; // stack address -32
|
||||
int d; // $s1
|
||||
} // line 16, address 0x20c28
|
||||
/*
|
||||
* Offset 0x20C28
|
||||
* D:\driver2\game\C\CAMERA.C (line 1083)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ OK_To_Zoom()
|
||||
{ // line 2, address 0x20c28
|
||||
int old_z; // $s0
|
||||
struct VECTOR temp; // stack address -24
|
||||
} // line 31, address 0x20cd8
|
||||
/*
|
||||
* Offset 0x20CD8
|
||||
* D:\driver2\game\C\CAMERA.C (line 1119)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetBasePos(struct VECTOR *pVec /*$a0*/)
|
||||
{
|
||||
}
|
413
src/C/cars.c
Normal file
413
src/C/cars.c
Normal file
@ -0,0 +1,413 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
SVECTOR day_vectors[4] =
|
||||
{
|
||||
{ 62404, 2520, 783, 0 },
|
||||
{ 62404, 2520, 783, 0 },
|
||||
{ 63172, 2364, 2364, 0 },
|
||||
{ 62404, 2520, 783, 0 }
|
||||
};
|
||||
|
||||
SVECTOR night_vectors[4] =
|
||||
{
|
||||
{ 3132, 2520, 783, 0 },
|
||||
{ 3132, 2520, 783, 0 },
|
||||
{ 63172, 2364, 63172, 0 },
|
||||
{ 3132, 2520, 783, 0 }
|
||||
};
|
||||
|
||||
SVECTOR day_colours[4] =
|
||||
{
|
||||
{ 3200, 3200, 3200, 0 },
|
||||
{ 3200, 3200, 3200, 0 },
|
||||
{ 3200, 3200, 3200, 0 },
|
||||
{ 3200, 3200, 3200, 0 }
|
||||
};
|
||||
|
||||
SVECTOR night_colours[4] =
|
||||
{
|
||||
{ 880, 880, 905, 0 },
|
||||
{ 880, 880, 905, 0 },
|
||||
{ 880, 880, 905, 0 },
|
||||
{ 880, 880, 905, 0 }
|
||||
};
|
||||
|
||||
MATRIX light_matrix =
|
||||
{ { { 4096, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, { 0, 0, 0 } };
|
||||
|
||||
MATRIX colour_matrix =
|
||||
{ { { 4032, 0, 0 }, { 3936, 0, 0 }, { 3520, 0, 0 } }, { 0, 0, 0 } };
|
||||
|
||||
int PolySizes[56] = {
|
||||
8, 0xC, 0x10, 0x18, 0x14, 0x14, 0x1C, 0x20, 8, 0xC,
|
||||
0x10, 0x10, 0, 0, 0, 0, 0xC, 0xC, 0xC, 0x10, 0x14,
|
||||
0x14, 0x18, 0x18, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0xC,
|
||||
0x10, 0x18, 0x14, 0x14, 0x1C, 0x20, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0xC, 0xC, 0xC, 0x10, 0x14, 0x14, 0x18, 0x18
|
||||
};
|
||||
|
||||
/*
|
||||
* Offset 0x20CFC
|
||||
* D:\driver2\game\C\CARS.C (line 834)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ plotNewCarModel(struct CAR_MODEL *car /*$s0*/, int palette /*$s2*/)
|
||||
{ // line 1, address 0x20cfc
|
||||
struct plotCarGlobals _pg; // stack address -72
|
||||
struct SVECTOR v0; // stack address -32
|
||||
unsigned long lightlevel; // stack address -24
|
||||
} // line 74, address 0x20ef0
|
||||
/*
|
||||
* Offset 0x20F08
|
||||
* D:\driver2\game\C\CARS.C (line 1125)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 s1
|
||||
*/
|
||||
void /*$ra*/ plotCarPolyGT3(int numTris /*$a0*/, struct CAR_POLY *src /*$t1*/, struct SVECTOR *vlist /*$s0*/, struct SVECTOR *nlist /*$a3*/, struct plotCarGlobals *pg /*stack 16*/, int palette /*stack 20*/)
|
||||
{ // line 1, address 0x20f08
|
||||
struct POLY_GT3 *prim; // $t0
|
||||
long *ot; // $s1
|
||||
long GT3rgb; // stack address -24
|
||||
int i; // $t7
|
||||
int v0; // $t3
|
||||
int v1; // $t4
|
||||
int v2; // $t2
|
||||
int n0; // $t3
|
||||
int n1; // $a2
|
||||
int n2; // $a0
|
||||
int r0; // stack address -20
|
||||
int r1; // stack address -16
|
||||
int r2; // $v0
|
||||
int reg; // $a0
|
||||
int clut_uv0; // $a1
|
||||
int tpage_uv1; // $t6
|
||||
int uv3_uv2; // $t5
|
||||
unsigned short *clut_base; // $t9
|
||||
{ // line 1, address 0x20f08
|
||||
int ofse; // $v1
|
||||
} // line 1, address 0x20f08
|
||||
{ // line 106, address 0x210a8
|
||||
int ofse; // $v1
|
||||
} // line 106, address 0x210a8
|
||||
} // line 126, address 0x21120
|
||||
/*
|
||||
* Offset 0x21120
|
||||
* D:\driver2\game\C\CARS.C (line 1442)
|
||||
* Stack frame base $sp, length 344
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawCar(struct _CAR_DATA *cp /*$s3*/, int view /*$a1*/)
|
||||
{ // line 1, address 0x21120
|
||||
int WheelSpeed; // $s0
|
||||
int model; // $fp
|
||||
struct _PLAYER *lp; // $a2
|
||||
{ // line 12, address 0x211dc
|
||||
struct CVECTOR col; // stack address -312
|
||||
} // line 50, address 0x212ac
|
||||
{ // line 54, address 0x212ac
|
||||
struct MATRIX temp_mat1; // stack address -304
|
||||
struct MATRIX temp_mat2; // stack address -272
|
||||
struct MATRIX final_mat; // stack address -240
|
||||
struct VECTOR pos; // stack address -208
|
||||
struct VECTOR pos1; // stack address -192
|
||||
struct SVECTOR temp_vec; // stack address -176
|
||||
int result; // $s4
|
||||
{ // line 77, address 0x212f8
|
||||
struct VECTOR corners[4]; // stack address -168
|
||||
} // line 96, address 0x213ec
|
||||
{ // line 100, address 0x213ec
|
||||
struct VECTOR d; // stack address -104
|
||||
struct VECTOR dist; // stack address -88
|
||||
} // line 117, address 0x21540
|
||||
{ // line 168, address 0x215b4
|
||||
int i; // $a0
|
||||
} // line 173, address 0x215d8
|
||||
{ // line 185, address 0x2160c
|
||||
struct MATRIX workmatrix; // stack address -104
|
||||
struct CAR_MODEL *CarModelPtr; // $s1
|
||||
{ // line 193, address 0x2166c
|
||||
} // line 195, address 0x21688
|
||||
} // line 197, address 0x21688
|
||||
{ // line 208, address 0x216dc
|
||||
int damage; // $v1
|
||||
{ // line 264, address 0x21824
|
||||
struct CAR_MODEL *CarModelPtr; // $s0
|
||||
{ // line 264, address 0x21824
|
||||
struct MATRIX workmatrix; // stack address -72
|
||||
} // line 293, address 0x21924
|
||||
} // line 294, address 0x21924
|
||||
} // line 295, address 0x21924
|
||||
{ // line 314, address 0x21984
|
||||
} // line 322, address 0x219ec
|
||||
} // line 346, address 0x21b30
|
||||
} // line 347, address 0x21b30
|
||||
/*
|
||||
* Offset 0x21B60
|
||||
* D:\driver2\game\C\CARS.C (line 1850)
|
||||
* Stack frame base $sp, length 160
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawCarWheels(struct _CAR_DATA *cp /*$fp*/, struct MATRIX *RearMatrix /*stack 4*/, struct VECTOR *pos /*stack 8*/, int zclip /*$a3*/)
|
||||
{ // line 1, address 0x21b60
|
||||
struct CAR_COSMETICS *car_cos; // $s0
|
||||
struct MATRIX FrontMatrix; // stack address -144
|
||||
struct MODEL *WheelModel; // $s0
|
||||
struct MODEL *WheelModelBack; // stack address -56
|
||||
struct MODEL *WheelModelFront; // stack address -52
|
||||
int i; // $s4
|
||||
static short FrontWheelRotation[20]; // address 0x0
|
||||
static short BackWheelRotation[20]; // address 0x30
|
||||
short model; // $a0
|
||||
short wheelSize; // $s2
|
||||
{ // line 16, address 0x21c10
|
||||
int FrontWheelIncrement; // $a3
|
||||
int BackWheelIncrement; // $t0
|
||||
} // line 69, address 0x21d38
|
||||
{ // line 72, address 0x21d38
|
||||
int c; // $t2
|
||||
int s; // $t3
|
||||
int FW1z; // $v0
|
||||
int FW2z; // $a0
|
||||
int BW1z; // $v0
|
||||
int BW2z; // $a3
|
||||
struct SVECTOR *VertPtr; // $t6
|
||||
} // line 76, address 0x21d38
|
||||
{ // line 76, address 0x21d38
|
||||
struct MATRIX SteerMatrix; // stack address -112
|
||||
} // line 76, address 0x21d38
|
||||
{ // line 138, address 0x2200c
|
||||
struct SVECTOR *verts; // $s5
|
||||
{ // line 157, address 0x22060
|
||||
struct VECTOR WheelPos; // stack address -80
|
||||
struct SVECTOR sWheelPos; // stack address -64
|
||||
} // line 162, address 0x22090
|
||||
} // line 194, address 0x22180
|
||||
} // line 196, address 0x221e8
|
||||
/*
|
||||
* Offset 0x221E8
|
||||
* D:\driver2\game\C\CARS.C (line 2058)
|
||||
* Stack frame base $sp, length 8
|
||||
*/
|
||||
void /*$ra*/ DrawWheelObject(struct MODEL *model /*$t2*/, struct SVECTOR *verts /*$t4*/, int transparent /*$a2*/, int wheelnum /*$a3*/)
|
||||
{ // line 1, address 0x221e8
|
||||
struct POLY_FT4 *prims; // $t0
|
||||
struct POLYFT4LIT *src; // $t1
|
||||
int i; // $t2
|
||||
int Z; // stack address -4
|
||||
int clut; // $t8
|
||||
int tpage; // $t7
|
||||
unsigned long bright; // $t6
|
||||
unsigned long dim; // $t5
|
||||
{ // line 35, address 0x22300
|
||||
int flag1; // stack address -8
|
||||
long vl; // $a0
|
||||
{ // line 53, address 0x223b0
|
||||
int r2; // $v1
|
||||
} // line 53, address 0x223b0
|
||||
} // line 83, address 0x22498
|
||||
} // line 85, address 0x224c0
|
||||
/*
|
||||
* Offset 0x224C0
|
||||
* D:\driver2\game\C\CARS.C (line 2198)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ ComputeCarLightingLevels(struct _CAR_DATA *cp /*$s1*/, char detail /*$s3*/)
|
||||
{ // line 1, address 0x224c0
|
||||
int light; // $s2
|
||||
struct SVECTOR lightsourcevector; // stack address -96
|
||||
struct SVECTOR colour; // stack address -88
|
||||
struct VECTOR lightValues; // stack address -80
|
||||
struct VECTOR *orient; // $s0
|
||||
{ // line 72, address 0x22774
|
||||
struct MODEL *model; // $v1
|
||||
struct SVECTOR *norms; // $a3
|
||||
struct SVECTOR *ppads; // $a2
|
||||
int num_norms; // $a1
|
||||
int count; // $a1
|
||||
struct CVECTOR c0; // stack address -64
|
||||
struct CVECTOR c1; // stack address -56
|
||||
struct CVECTOR c2; // stack address -48
|
||||
{ // line 78, address 0x22774
|
||||
long GT3rgb; // stack address -40
|
||||
} // line 78, address 0x22774
|
||||
} // line 114, address 0x2289c
|
||||
} // line 118, address 0x228c8
|
||||
/*
|
||||
* Offset 0x228C8
|
||||
* D:\driver2\game\C\CARS.C (line 2321)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ buildNewCars()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x229C8
|
||||
* D:\driver2\game\C\CARS.C (line 2357)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ buildNewCarFromModel(struct CAR_MODEL *car /*$s5*/, struct MODEL *model /*$s7*/, int first /*$a2*/)
|
||||
{ // line 1, address 0x229c8
|
||||
char *polylist; // $s0
|
||||
int i; // $s2
|
||||
int j; // $s3
|
||||
int pass; // $s4
|
||||
{ // line 37, address 0x22b04
|
||||
struct CAR_POLY *p; // $s1
|
||||
char ptype; // $s6
|
||||
{ // line 46, address 0x22b4c
|
||||
} // line 48, address 0x22b4c
|
||||
{ // line 51, address 0x22b4c
|
||||
} // line 53, address 0x22b4c
|
||||
{ // line 57, address 0x22b4c
|
||||
} // line 59, address 0x22b4c
|
||||
{ // line 62, address 0x22b4c
|
||||
} // line 64, address 0x22b4c
|
||||
{ // line 69, address 0x22b4c
|
||||
} // line 77, address 0x22b4c
|
||||
{ // line 80, address 0x22b4c
|
||||
} // line 92, address 0x22b4c
|
||||
{ // line 96, address 0x22b4c
|
||||
} // line 104, address 0x22b84
|
||||
{ // line 107, address 0x22b84
|
||||
} // line 119, address 0x22be4
|
||||
{ // line 123, address 0x22be4
|
||||
} // line 125, address 0x22be4
|
||||
{ // line 129, address 0x22be4
|
||||
} // line 131, address 0x22be4
|
||||
{ // line 135, address 0x22be4
|
||||
} // line 147, address 0x22c78
|
||||
{ // line 150, address 0x22c78
|
||||
} // line 169, address 0x22d8c
|
||||
{ // line 173, address 0x22d8c
|
||||
} // line 191, address 0x22e94
|
||||
{ // line 194, address 0x22e94
|
||||
} // line 222, address 0x23044
|
||||
} // line 225, address 0x23044
|
||||
} // line 236, address 0x23100
|
||||
/*
|
||||
* Offset 0x23130
|
||||
* D:\driver2\game\C\CARS.C (line 2595)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ MangleWheelModels()
|
||||
{ // line 2, address 0x23130
|
||||
int i; // $v1
|
||||
struct MODEL *m; // $t0
|
||||
struct POLYFT4LIT *src; // $a0
|
||||
{ // line 15, address 0x23178
|
||||
int j; // $t1
|
||||
} // line 46, address 0x233bc
|
||||
} // line 54, address 0x233f8
|
||||
/*
|
||||
* Offset 0x233F8
|
||||
* D:\driver2\game\C\CARS.C (line 2697)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
char /*$ra*/ GetCarPalIndex(int tpage /*$a0*/)
|
||||
{ // line 1, address 0x233f8
|
||||
int i; // $a1
|
||||
} // line 16, address 0x2343c
|
||||
/*
|
||||
* Offset 0x23444
|
||||
* D:\driver2\game\C\CARS.C (line 1793)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ DrawCarObject(struct CAR_MODEL *car /*$s0*/, struct MATRIX *matrix /*$a1*/, struct VECTOR *pos /*$a2*/, struct VECTOR *pos1 /*$a3*/, int palette /*stack 16*/, struct _CAR_DATA *cp /*stack 20*/, int detail /*stack 24*/)
|
||||
{ // line 1, address 0x23444
|
||||
{ // line 1, address 0x23444
|
||||
struct SVECTOR cog; // stack address -40
|
||||
struct VECTOR modelLocation; // stack address -32
|
||||
} // line 1, address 0x23444
|
||||
{ // line 1, address 0x23444
|
||||
static unsigned long savedSP; // address 0x0
|
||||
} // line 40, address 0x23544
|
||||
} // line 43, address 0x23544
|
||||
/*
|
||||
* Offset 0x23544
|
||||
* D:\driver2\game\C\CARS.C (line 2152)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ PlayerCarFX(struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0x23544
|
||||
int WheelSpeed; // $s1
|
||||
} // line 39, address 0x23660
|
||||
/*
|
||||
* Offset 0x23660
|
||||
* D:\driver2\game\C\CARS.C (line 2656)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ setupLightingMatrices()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x237B8
|
||||
* D:\driver2\game\C\CARS.C (line 2685)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ restoreLightingMatrices()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x23820
|
||||
* D:\driver2\game\C\CARS.C (line 917)
|
||||
* Stack frame base $sp, length 8
|
||||
*/
|
||||
void /*$ra*/ plotCarPolyB3(int numTris /*$a0*/, struct CAR_POLY *src /*$a1*/, struct SVECTOR *vlist /*$a2*/, struct plotCarGlobals *pg /*$a3*/)
|
||||
{ // line 1, address 0x23820
|
||||
struct POLY_F3 *prim; // $t0
|
||||
int i; // $t1
|
||||
long *ot; // $t3
|
||||
long F3rgb; // $t4
|
||||
{ // line 10, address 0x23848
|
||||
int reg; // stack address -8
|
||||
} // line 50, address 0x23914
|
||||
} // line 53, address 0x2392c
|
||||
/*
|
||||
* Offset 0x2392C
|
||||
* D:\driver2\game\C\CARS.C (line 976)
|
||||
* Stack frame base $sp, length 8
|
||||
*/
|
||||
void /*$ra*/ plotCarPolyFT3(int numTris /*$a0*/, struct CAR_POLY *src /*$t1*/, struct SVECTOR *vlist /*$t4*/, struct plotCarGlobals *pg /*$t5*/)
|
||||
{ // line 1, address 0x2392c
|
||||
struct POLY_FT3 *prim; // $t0
|
||||
long *ot; // $t6
|
||||
long FT3rgb; // stack address -8
|
||||
int i; // $t2
|
||||
{ // line 16, address 0x2396c
|
||||
int reg; // stack address -4
|
||||
int clut_uv0; // $a2
|
||||
int tpage_uv1; // $a3
|
||||
int uv3_uv2; // $a1
|
||||
{ // line 22, address 0x2396c
|
||||
int ofse; // $v1
|
||||
} // line 22, address 0x2396c
|
||||
} // line 76, address 0x23a70
|
||||
} // line 79, address 0x23a88
|
||||
/*
|
||||
* Offset 0x23A88
|
||||
* D:\driver2\game\C\CARS.C (line 1349)
|
||||
* Stack frame base $sp, length 8
|
||||
*/
|
||||
void /*$ra*/ plotCarPolyGT3nolight(int numTris /*$a0*/, struct CAR_POLY *src /*$t3*/, struct SVECTOR *vlist /*$t6*/, struct plotCarGlobals *pg /*$a3*/, int palette /*stack 16*/)
|
||||
{ // line 1, address 0x23a88
|
||||
struct POLY_FT3 *prim; // $t0
|
||||
long *ot; // $t7
|
||||
long GT3rgb; // stack address -8
|
||||
int i; // $t4
|
||||
unsigned short *clut_base; // $t8
|
||||
{ // line 17, address 0x23ad0
|
||||
int reg; // stack address -4
|
||||
int clut_uv0; // $a0
|
||||
int tpage_uv1; // $t1
|
||||
int uv3_uv2; // $t2
|
||||
{ // line 22, address 0x23ad0
|
||||
int ofse; // $v1
|
||||
} // line 22, address 0x23ad0
|
||||
} // line 76, address 0x23bfc
|
||||
} // line 79, address 0x23c14
|
31
src/C/cell.c
Normal file
31
src/C/cell.c
Normal file
@ -0,0 +1,31 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x23C14
|
||||
* D:\driver2\game\C\CELL.C (line 67)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
struct PACKED_CELL_OBJECT * /*$ra*/ GetFirstPackedCop(int cellx /*$t3*/, int cellz /*$a1*/, struct CELL_ITERATOR *pci /*$a2*/, int use_computed /*$a3*/)
|
||||
{ // line 1, address 0x23c14
|
||||
struct PACKED_CELL_OBJECT *ppco; // $a1
|
||||
unsigned short index; // $a0
|
||||
unsigned short num; // $t0
|
||||
int cbrx; // $t0
|
||||
int cbrz; // $t1
|
||||
int xoff; // $a0
|
||||
int yoff; // $v0
|
||||
int cbr; // $t2
|
||||
{ // line 34, address 0x23cec
|
||||
int event; // $t0
|
||||
} // line 43, address 0x23d30
|
||||
} // line 75, address 0x23e28
|
||||
/*
|
||||
* Offset 0x23E28
|
||||
* D:\driver2\game\C\CELL.C (line 57)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ ClearCopUsage()
|
||||
{
|
||||
}
|
891
src/C/civ_ai.c
Normal file
891
src/C/civ_ai.c
Normal file
@ -0,0 +1,891 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
int roadblockDelayDiff[] = { 1500, 1000, 800 };
|
||||
|
||||
char speedLimits[3] = { 56, 97, 138 };
|
||||
|
||||
CIV_PING civPingTest = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||
char modelRandomList[] = { 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 0, 1, 0, 4 };
|
||||
|
||||
/*
|
||||
* Offset 0x23E50
|
||||
* D:\driver2\game\C\CIV_AI.C (line 717)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
int /*$ra*/ InitCar(struct _CAR_DATA *cp /*$s0*/, int direction /*$s6*/, long *startPos[4] /*$s2*/, unsigned char control /*$s4*/, int model /*stack 16*/, int palette /*stack 20*/, char *extraData /*stack 24*/)
|
||||
{ // line 1, address 0x23e50
|
||||
struct VECTOR tmpStart; // stack address -48
|
||||
} // line 69, address 0x24090
|
||||
/*
|
||||
* Offset 0x24090
|
||||
* D:\driver2\game\C\CIV_AI.C (line 981)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ GetNextRoadInfo(struct _CAR_DATA *cp /*$s7*/, int randomExit /*$a1*/, int *turnAngle /*stack 8*/, int *startDist /*stack 12*/, struct CIV_ROUTE_ENTRY *oldNode /*stack 16*/)
|
||||
{ // line 1, address 0x24090
|
||||
int oldOppDir; // $s4
|
||||
int i; // $a1
|
||||
int j; // $s6
|
||||
int newRoad; // $s3
|
||||
int numExits; // stack address -88
|
||||
int currentRoadExit; // $t6
|
||||
int newNumLanes; // $a3
|
||||
int newDir; // stack address -84
|
||||
int oppDir; // $s0
|
||||
struct DRIVER2_JUNCTION *jn; // $t5
|
||||
struct DRIVER2_CURVE *cv; // $s1
|
||||
struct DRIVER2_STRAIGHT *st; // $s5
|
||||
struct DRIVER2_STRAIGHT *tmpSt; // $a2
|
||||
struct DRIVER2_CURVE *tmpCv; // $s1
|
||||
short *jnExit; // $a2
|
||||
int newLane; // $s2
|
||||
char leftLane; // stack address -80
|
||||
char rightLane; // stack address -76
|
||||
{ // line 61, address 0x2479c
|
||||
char relExitId; // $fp
|
||||
static char validExitRelIdx[4][3][2]; // address 0x0
|
||||
int addRoad; // $t9
|
||||
{ // line 1, address 0x2486c
|
||||
int currentRoadExit; // $t6
|
||||
int newRoadExit; // $fp
|
||||
{ // line 1, address 0x2486c
|
||||
int exitMod; // $a0
|
||||
int ret; // $a1
|
||||
} // line 1, address 0x248d8
|
||||
} // line 1, address 0x248d8
|
||||
{ // line 110, address 0x24c80
|
||||
int x; // $v1
|
||||
int z; // $v0
|
||||
int dir; // stack address -84
|
||||
struct DRIVER2_CURVE *cv; // $s1
|
||||
{ // line 110, address 0x24c80
|
||||
} // line 110, address 0x24c80
|
||||
} // line 110, address 0x24c80
|
||||
{ // line 131, address 0x250b0
|
||||
int exitId; // $a1
|
||||
{ // line 135, address 0x250d4
|
||||
char lane; // $v0
|
||||
} // line 151, address 0x2512c
|
||||
{ // line 1, address 0x251e8
|
||||
int currentRoadExit; // $t6
|
||||
{ // line 1, address 0x251e8
|
||||
int exitMod; // $a1
|
||||
int ret; // $a2
|
||||
} // line 1, address 0x25248
|
||||
} // line 1, address 0x25248
|
||||
} // line 166, address 0x25254
|
||||
{ // line 1, address 0x25254
|
||||
struct DRIVER2_JUNCTION *jn; // $t5
|
||||
int currentExit; // $a2
|
||||
int turnAngle; // $t1
|
||||
struct _CAR_DATA *cp; // $s7
|
||||
struct CIV_ROUTE_ENTRY *oldNode; // $t7
|
||||
{ // line 1, address 0x25254
|
||||
unsigned short jnFlags; // $a0
|
||||
int i; // $a1
|
||||
int exitId; // $a3
|
||||
} // line 1, address 0x25324
|
||||
} // line 1, address 0x25324
|
||||
{ // line 171, address 0x25324
|
||||
{ // line 192, address 0x257dc
|
||||
int x; // $v1
|
||||
int z; // $v0
|
||||
int dir; // stack address -84
|
||||
struct DRIVER2_CURVE *cv; // $s1
|
||||
{ // line 192, address 0x257dc
|
||||
} // line 192, address 0x257dc
|
||||
} // line 192, address 0x257dc
|
||||
} // line 203, address 0x25c30
|
||||
} // line 203, address 0x25c30
|
||||
{ // line 211, address 0x25c38
|
||||
int i; // $a1
|
||||
int dx; // $v1
|
||||
int dz; // $a0
|
||||
int numLanes; // $fp
|
||||
int *pNewLane; // $s3
|
||||
int laneFromLeft; // $a3
|
||||
int laneFromRight; // $v1
|
||||
{ // line 274, address 0x2604c
|
||||
int preferredNewLane; // $t1
|
||||
} // line 302, address 0x2637c
|
||||
{ // line 305, address 0x263b0
|
||||
int preferredNewLane; // $s4
|
||||
{ // line 305, address 0x263b0
|
||||
int x; // $v1
|
||||
int z; // $v0
|
||||
struct DRIVER2_CURVE *cv; // $s1
|
||||
{ // line 305, address 0x263b0
|
||||
} // line 305, address 0x263b0
|
||||
} // line 305, address 0x263b0
|
||||
} // line 332, address 0x26704
|
||||
} // line 345, address 0x2680c
|
||||
} // line 369, address 0x269cc
|
||||
/*
|
||||
* Offset 0x269CC
|
||||
* D:\driver2\game\C\CIV_AI.C (line 1365)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ InitNodeList(struct _CAR_DATA *cp /*$s6*/, char *extraData /*$s7*/)
|
||||
{ // line 1, address 0x269cc
|
||||
int i; // $v1
|
||||
struct CIV_ROUTE_ENTRY *cr; // $s5
|
||||
int dx; // $s1
|
||||
int dz; // $s2
|
||||
int surfInd; // $s4
|
||||
{ // line 32, address 0x26a6c
|
||||
int theta; // $s0
|
||||
int laneDist; // $s1
|
||||
struct DRIVER2_STRAIGHT *str; // $s3
|
||||
} // line 41, address 0x26bc8
|
||||
{ // line 46, address 0x26c04
|
||||
struct DRIVER2_CURVE *crv; // $s0
|
||||
} // line 50, address 0x26cb4
|
||||
} // line 60, address 0x26d14
|
||||
/*
|
||||
* Offset 0x26D14
|
||||
* D:\driver2\game\C\CIV_AI.C (line 1441)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetNodePos(struct DRIVER2_STRAIGHT *straight /*$t1*/, struct DRIVER2_JUNCTION *junction /*$a1*/, struct DRIVER2_CURVE *curve /*$t0*/, int distAlongPath /*$a3*/, struct _CAR_DATA *cp /*stack 16*/, int *x /*stack 20*/, int *z /*stack 24*/, int laneNo /*stack 28*/)
|
||||
{ // line 1, address 0x26d14
|
||||
unsigned char oldLane; // $a0
|
||||
unsigned char changeLaneCount; // $t3
|
||||
} // line 63, address 0x26f88
|
||||
/*
|
||||
* Offset 0x26F88
|
||||
* D:\driver2\game\C\CIV_AI.C (line 1507)
|
||||
* Stack frame base $sp, length 136
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ CheckChangeLanes(struct DRIVER2_STRAIGHT *straight /*$s4*/, struct DRIVER2_CURVE *curve /*$s6*/, int distAlongSegment /*$a2*/, struct _CAR_DATA *cp /*$s3*/, int tryToPark /*stack 16*/)
|
||||
{ // line 1, address 0x26f88
|
||||
unsigned char currentLane; // $s7
|
||||
unsigned char newLane; // $s2
|
||||
unsigned char trials; // $t3
|
||||
unsigned char canProceed; // stack address -88
|
||||
unsigned char travelAlongRoad; // $s5
|
||||
unsigned char turnRight; // stack address -84
|
||||
struct _CAR_DATA *cp1; // $s0
|
||||
struct CIV_ROUTE_ENTRY tmpNode; // stack address -120
|
||||
{ // line 65, address 0x272f8
|
||||
struct VECTOR pos; // stack address -104
|
||||
int theta; // $a0
|
||||
int length; // $a1
|
||||
{ // line 81, address 0x273fc
|
||||
} // line 89, address 0x274fc
|
||||
} // line 91, address 0x2750c
|
||||
} // line 116, address 0x27598
|
||||
/*
|
||||
* Offset 0x27598
|
||||
* D:\driver2\game\C\CIV_AI.C (line 1637)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ CreateNewNode(struct _CAR_DATA *cp /*$s4*/)
|
||||
{ // line 1, address 0x27598
|
||||
int oldRoad; // $s1
|
||||
int cr; // $a3
|
||||
struct CIV_ROUTE_ENTRY *newNode; // $s6
|
||||
struct CIV_ROUTE_ENTRY *oldNode; // $s3
|
||||
struct DRIVER2_CURVE *curve; // $s0
|
||||
struct DRIVER2_STRAIGHT *straight; // $s5
|
||||
int turnAngle; // stack address -56
|
||||
{ // line 1, address 0x27598
|
||||
struct _CAR_DATA *cp; // $s4
|
||||
struct CIV_ROUTE_ENTRY *currentNode; // $v1
|
||||
{ // line 1, address 0x27598
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $a0
|
||||
} // line 1, address 0x275e4
|
||||
} // line 1, address 0x275e4
|
||||
{ // line 1, address 0x275f4
|
||||
struct _CAR_DATA *cp; // $s4
|
||||
{ // line 1, address 0x275f4
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $a0
|
||||
} // line 1, address 0x27604
|
||||
} // line 1, address 0x27604
|
||||
{ // line 1, address 0x27610
|
||||
struct _CAR_DATA *cp; // $s4
|
||||
{ // line 1, address 0x27610
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $a0
|
||||
} // line 1, address 0x27620
|
||||
} // line 1, address 0x27620
|
||||
{ // line 1, address 0x2762c
|
||||
struct _CAR_DATA *cp; // $s4
|
||||
{ // line 1, address 0x2762c
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $a0
|
||||
} // line 1, address 0x2763c
|
||||
} // line 1, address 0x2763c
|
||||
{ // line 16, address 0x27658
|
||||
struct _CAR_DATA *cp; // $s4
|
||||
struct CIV_ROUTE_ENTRY *currentNode; // $s3
|
||||
{ // line 16, address 0x27658
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v1
|
||||
} // line 16, address 0x27658
|
||||
} // line 16, address 0x27658
|
||||
{ // line 18, address 0x27658
|
||||
{ // line 1, address 0x27658
|
||||
struct _CAR_DATA *cp; // $s4
|
||||
{ // line 1, address 0x27658
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v1
|
||||
} // line 1, address 0x27668
|
||||
} // line 1, address 0x27668
|
||||
} // line 21, address 0x27678
|
||||
{ // line 22, address 0x2769c
|
||||
struct _CAR_DATA *cp; // $s4
|
||||
struct CIV_ROUTE_ENTRY *currentNode; // $s3
|
||||
{ // line 22, address 0x2769c
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $s2
|
||||
} // line 22, address 0x276b4
|
||||
} // line 22, address 0x276b4
|
||||
{ // line 44, address 0x27750
|
||||
int travelDir; // $a1
|
||||
int segmentEnd; // $a0
|
||||
{ // line 51, address 0x27818
|
||||
int startDist; // stack address -52
|
||||
} // line 51, address 0x27870
|
||||
} // line 51, address 0x27880
|
||||
{ // line 55, address 0x278b4
|
||||
int travelDir; // $a2
|
||||
int segmentEnd; // $t0
|
||||
{ // line 62, address 0x279bc
|
||||
int startDist; // stack address -48
|
||||
} // line 62, address 0x279f8
|
||||
} // line 63, address 0x27a0c
|
||||
{ // line 80, address 0x27a80
|
||||
struct CIV_ROUTE_ENTRY tmpNode; // stack address -72
|
||||
{ // line 84, address 0x27ac0
|
||||
int travelDir; // $a0
|
||||
} // line 95, address 0x27b80
|
||||
{ // line 102, address 0x27bf8
|
||||
struct _CAR_DATA *playerCar; // $v0
|
||||
int dx; // $v1
|
||||
int dz; // $a0
|
||||
} // line 107, address 0x27c68
|
||||
{ // line 114, address 0x27ca0
|
||||
int tryToPark; // $s1
|
||||
} // line 136, address 0x27e08
|
||||
{ // line 142, address 0x27e6c
|
||||
int radOfCrv; // $s5
|
||||
int cornerAngle; // $a3
|
||||
int segLength; // $s0
|
||||
int tmp; // $a1
|
||||
int dx; // $s1
|
||||
int dz; // $s0
|
||||
{ // line 152, address 0x27f24
|
||||
struct _CAR_DATA *cp; // $s4
|
||||
{ // line 152, address 0x27f24
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $a0
|
||||
} // line 155, address 0x27fac
|
||||
} // line 155, address 0x27fac
|
||||
{ // line 163, address 0x27fe0
|
||||
struct _CAR_DATA *cp; // $s4
|
||||
{ // line 163, address 0x27fe0
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $a0
|
||||
} // line 166, address 0x28074
|
||||
} // line 166, address 0x28074
|
||||
} // line 169, address 0x28074
|
||||
{ // line 173, address 0x28074
|
||||
{ // line 1, address 0x28074
|
||||
struct _CAR_DATA *cp; // $s4
|
||||
struct CIV_ROUTE_ENTRY *currentNode; // $s6
|
||||
{ // line 1, address 0x28074
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v0
|
||||
} // line 1, address 0x28074
|
||||
} // line 1, address 0x28074
|
||||
} // line 177, address 0x28084
|
||||
} // line 177, address 0x28084
|
||||
} // line 191, address 0x28140
|
||||
/*
|
||||
* Offset 0x28140
|
||||
* D:\driver2\game\C\CIV_AI.C (line 1843)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ InitCivState(struct _CAR_DATA *cp /*$s1*/, char *extraData /*$s2*/)
|
||||
{ // line 1, address 0x28140
|
||||
struct CIV_STATE *cs; // $s0
|
||||
} // line 44, address 0x28350
|
||||
/*
|
||||
* Offset 0x28350
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2016)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ PingOutAllSpecialCivCars()
|
||||
{ // line 2, address 0x28350
|
||||
struct _CAR_DATA *lcp; // $s0
|
||||
{ // line 1, address 0x283b0
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
} // line 1, address 0x2844c
|
||||
} // line 9, address 0x28474
|
||||
/*
|
||||
* Offset 0x28474
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2028)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ PingOutAllCivCarsAndCopCars()
|
||||
{ // line 2, address 0x28474
|
||||
struct _CAR_DATA *lcp; // $s0
|
||||
{ // line 1, address 0x284b4
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
} // line 1, address 0x28594
|
||||
} // line 9, address 0x285bc
|
||||
/*
|
||||
* Offset 0x285BC
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2050)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ CheckPingOut(struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0x285bc
|
||||
int dx; // $a0
|
||||
int dz; // $v1
|
||||
int dist; // $s1
|
||||
{ // line 1, address 0x28620
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
} // line 1, address 0x286fc
|
||||
} // line 31, address 0x28748
|
||||
/*
|
||||
* Offset 0x28748
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2176)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
int /*$ra*/ CreateCivCarWotDrivesABitThenStops(int direction /*$s5*/, long *startPos[4] /*$s2*/, long *stopPos[4] /*$a2*/, unsigned char internalModel /*$s4*/, int palette /*stack 16*/)
|
||||
{ // line 1, address 0x28748
|
||||
struct _EXTRA_CIV_DATA civDat; // stack address -56
|
||||
struct _CAR_DATA *newCar; // $s1
|
||||
struct CIV_ROUTE_ENTRY *stopNode; // $a0
|
||||
struct CIV_ROUTE_ENTRY *spareNode; // $a1
|
||||
{ // line 1, address 0x28748
|
||||
{ // line 1, address 0x28748
|
||||
char *slot; // $v1
|
||||
struct _CAR_DATA *carCnt; // $a0
|
||||
} // line 8, address 0x287dc
|
||||
} // line 8, address 0x287dc
|
||||
} // line 53, address 0x289c8
|
||||
/*
|
||||
* Offset 0x289C8
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2248)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ CreateStationaryCivCar(int direction /*$t4*/, long orientX /*$s2*/, long orientZ /*$s1*/, long *startPos[4] /*$a2*/, int externalModel /*stack 16*/, int palette /*stack 20*/, int controlFlags /*stack 24*/)
|
||||
{ // line 1, address 0x289c8
|
||||
struct _EXTRA_CIV_DATA civDat; // stack address -72
|
||||
struct _CAR_DATA *newCar; // $s0
|
||||
long tmpRes[4]; // stack address -48
|
||||
long tmpQ[4]; // stack address -32
|
||||
{ // line 1, address 0x28a84
|
||||
{ // line 1, address 0x28a84
|
||||
char *slot; // $v1
|
||||
struct _CAR_DATA *carCnt; // $a0
|
||||
} // line 1, address 0x28ad0
|
||||
} // line 1, address 0x28ad0
|
||||
} // line 41, address 0x28e1c
|
||||
/*
|
||||
* Offset 0x28E1C
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2323)
|
||||
* Stack frame base $sp, length 160
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ PingInCivCar(int minPingInDist /*stack 0*/)
|
||||
{ // line 1, address 0x28e1c
|
||||
struct _EXTRA_CIV_DATA civDat; // stack address -128
|
||||
int dir; // stack address -52
|
||||
int distAlongSegment; // $fp
|
||||
int lane; // $s7
|
||||
struct _CAR_DATA *newCar; // $s1
|
||||
struct DRIVER2_STRAIGHT *str; // $s6
|
||||
struct DRIVER2_CURVE *crv; // $s5
|
||||
unsigned char cookieCountStart; // $s4
|
||||
int curveLength; // stack address -48
|
||||
unsigned char model; // $s4
|
||||
unsigned char possibleLanes[12]; // stack address -104
|
||||
unsigned char carDistLanes[15]; // stack address -88
|
||||
char numPossibleLanes; // $s0
|
||||
int lbody; // $s3
|
||||
{ // line 1, address 0x28f54
|
||||
{ // line 1, address 0x28f54
|
||||
char *slot; // $a1
|
||||
struct _CAR_DATA *carCnt; // $a0
|
||||
} // line 1, address 0x28fa8
|
||||
} // line 1, address 0x28fa8
|
||||
{ // line 70, address 0x29068
|
||||
char newCarId; // $v1
|
||||
{ // line 1, address 0x290c0
|
||||
struct _CAR_DATA *cp; // $s1
|
||||
} // line 1, address 0x291a8
|
||||
} // line 79, address 0x2930c
|
||||
{ // line 139, address 0x29688
|
||||
char frog; // $a0
|
||||
char numLanes; // $a1
|
||||
} // line 139, address 0x297c8
|
||||
{ // line 148, address 0x298c8
|
||||
char frog; // $a0
|
||||
char numLanes; // $a1
|
||||
} // line 148, address 0x299cc
|
||||
{ // line 205, address 0x29cb0
|
||||
int externalModel; // $v0
|
||||
{ // line 212, address 0x29d2c
|
||||
unsigned char palette; // $v0
|
||||
} // line 216, address 0x29d88
|
||||
} // line 221, address 0x29dc4
|
||||
{ // line 227, address 0x29e20
|
||||
int theta; // $s0
|
||||
int minDistAlong; // $s2
|
||||
} // line 240, address 0x29f78
|
||||
{ // line 244, address 0x29fc0
|
||||
int minAngle; // $a1
|
||||
} // line 255, address 0x2a0f8
|
||||
{ // line 270, address 0x2a150
|
||||
long pos[4]; // stack address -72
|
||||
unsigned int distSq; // stack address -56
|
||||
{ // line 270, address 0x2a150
|
||||
int *distToCarSq; // $t2
|
||||
{ // line 270, address 0x2a150
|
||||
int dz; // $v1
|
||||
int dx; // $a0
|
||||
int distSq; // $v0
|
||||
unsigned int retDistSq; // $a2
|
||||
struct _CAR_DATA *lcp; // $a1
|
||||
} // line 278, address 0x2a290
|
||||
} // line 278, address 0x2a290
|
||||
{ // line 288, address 0x2a2a8
|
||||
int x; // $t2
|
||||
int y; // $a2
|
||||
int z; // $t1
|
||||
unsigned int distSq; // $a3
|
||||
{ // line 288, address 0x2a2a8
|
||||
int dz; // $v1
|
||||
int dx; // $a0
|
||||
int ret; // $t0
|
||||
struct _CAR_DATA *lcp; // $a1
|
||||
} // line 288, address 0x2a3a8
|
||||
} // line 288, address 0x2a3a8
|
||||
} // line 299, address 0x2a3e4
|
||||
} // line 333, address 0x2a52c
|
||||
/*
|
||||
* Offset 0x2A52C
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2659)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ AttemptUnPark(struct _CAR_DATA *cp /*$s1*/)
|
||||
{ // line 1, address 0x2a52c
|
||||
struct DRIVER2_STRAIGHT *str; // $s2
|
||||
struct DRIVER2_CURVE *crv; // $s3
|
||||
} // line 31, address 0x2a664
|
||||
/*
|
||||
* Offset 0x2A664
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2798)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CivAccelTrafficRules(struct _CAR_DATA *cp /*$t3*/, int *distToNode /*$a1*/)
|
||||
{ // line 1, address 0x2a664
|
||||
int lbody; // $t1
|
||||
int wbody; // $t2
|
||||
struct CIV_STATE *cs; // $a2
|
||||
{ // line 46, address 0x2a784
|
||||
int stopDist; // $t0
|
||||
{ // line 50, address 0x2a7fc
|
||||
int endSpeed; // $v0
|
||||
} // line 55, address 0x2a868
|
||||
} // line 56, address 0x2a868
|
||||
{ // line 65, address 0x2a8ac
|
||||
int ret; // $a1
|
||||
int properVel; // $v1
|
||||
int brakeDist; // $a3
|
||||
{ // line 103, address 0x2a980
|
||||
int endSpeed; // $v0
|
||||
int currentDist; // $v1
|
||||
} // line 103, address 0x2a980
|
||||
} // line 117, address 0x2aa54
|
||||
{ // line 125, address 0x2aa54
|
||||
int roadClear; // $t8
|
||||
int checkObstDist; // $t7
|
||||
int numLanes; // $v0
|
||||
{ // line 134, address 0x2aa74
|
||||
struct _CAR_DATA *cp; // $t3
|
||||
{ // line 134, address 0x2aa74
|
||||
struct _CAR_DATA *lcp; // $a3
|
||||
int normal; // $v0
|
||||
int tangent; // $a0
|
||||
int distToObstacle; // $t0
|
||||
int ccarAng; // $t1
|
||||
int scarAng; // $t2
|
||||
} // line 134, address 0x2ab94
|
||||
} // line 134, address 0x2ab94
|
||||
{ // line 1, address 0x2abac
|
||||
struct _CAR_DATA *cp; // $t3
|
||||
{ // line 1, address 0x2abac
|
||||
struct CIV_STATE *cs; // $v1
|
||||
} // line 1, address 0x2abac
|
||||
} // line 1, address 0x2abac
|
||||
{ // line 145, address 0x2abc0
|
||||
int ret; // $v1
|
||||
} // line 148, address 0x2ac10
|
||||
} // line 149, address 0x2ac10
|
||||
} // line 151, address 0x2ac10
|
||||
/*
|
||||
* Offset 0x2AC10
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2950)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ SetUpCivCollFlags()
|
||||
{ // line 2, address 0x2ac10
|
||||
struct SVECTOR boxDisp; // stack address -72
|
||||
int carLength[2]; // stack address -64
|
||||
struct _CAR_DATA *cp0; // $s5
|
||||
struct _CAR_DATA *cp1; // $s2
|
||||
unsigned int dNewLBODY[2]; // stack address -56
|
||||
int dx; // $s0
|
||||
int dz; // stack address -48
|
||||
{ // line 35, address 0x2ac7c
|
||||
int extraLength; // $a2
|
||||
} // line 35, address 0x2acac
|
||||
{ // line 40, address 0x2addc
|
||||
{ // line 53, address 0x2ae2c
|
||||
} // line 53, address 0x2ae80
|
||||
{ // line 66, address 0x2afc8
|
||||
int civCD; // $s7
|
||||
int brake; // $a0
|
||||
{ // line 74, address 0x2aff8
|
||||
unsigned int *blth; // $v1
|
||||
} // line 74, address 0x2b028
|
||||
{ // line 83, address 0x2b088
|
||||
int i; // $a1
|
||||
int h; // $a3
|
||||
int rnd; // $a2
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
{ // line 90, address 0x2b128
|
||||
} // line 98, address 0x2b1f8
|
||||
} // line 100, address 0x2b20c
|
||||
} // line 101, address 0x2b20c
|
||||
} // line 102, address 0x2b20c
|
||||
{ // line 106, address 0x2b230
|
||||
unsigned char i; // $s0
|
||||
} // line 115, address 0x2b2d4
|
||||
} // line 116, address 0x2b2d4
|
||||
/*
|
||||
* Offset 0x2B2D4
|
||||
* D:\driver2\game\C\CIV_AI.C (line 3074)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ CivAccel(struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0x2b2d4
|
||||
int ret; // $t1
|
||||
int distToNode; // stack address -16
|
||||
int dx; // $v1
|
||||
int dz; // $a0
|
||||
{ // line 32, address 0x2b3c4
|
||||
int tmpRet; // $a0
|
||||
int lbody; // $a0
|
||||
{ // line 37, address 0x2b3f0
|
||||
int sf; // $v1
|
||||
int c1; // $t0
|
||||
int c2; // $a3
|
||||
int c3; // $a1
|
||||
{ // line 52, address 0x2b4b4
|
||||
int tmp; // $v1
|
||||
} // line 55, address 0x2b520
|
||||
} // line 58, address 0x2b530
|
||||
} // line 72, address 0x2b590
|
||||
} // line 75, address 0x2b5a4
|
||||
/*
|
||||
* Offset 0x2B5A4
|
||||
* D:\driver2\game\C\CIV_AI.C (line 3166)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
int /*$ra*/ CivSteerAngle(struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0x2b5a4
|
||||
int station; // $a3
|
||||
int step; // $s2
|
||||
int ret; // $a0
|
||||
struct VECTOR locPath; // stack address -56
|
||||
struct VECTOR pathPoint; // stack address -40
|
||||
int lbody; // $s3
|
||||
{ // line 1, address 0x2b5a4
|
||||
{ // line 1, address 0x2b5a4
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
{ // line 1, address 0x2b5a4
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v1
|
||||
} // line 9, address 0x2b5f8
|
||||
} // line 9, address 0x2b5f8
|
||||
{ // line 1, address 0x2b608
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
{ // line 1, address 0x2b608
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v1
|
||||
} // line 1, address 0x2b618
|
||||
} // line 1, address 0x2b618
|
||||
{ // line 1, address 0x2b628
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
{ // line 1, address 0x2b628
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v1
|
||||
} // line 1, address 0x2b638
|
||||
} // line 1, address 0x2b638
|
||||
{ // line 1, address 0x2b648
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
{ // line 1, address 0x2b648
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v1
|
||||
} // line 1, address 0x2b658
|
||||
} // line 1, address 0x2b658
|
||||
} // line 26, address 0x2b678
|
||||
{ // line 1, address 0x2b6e4
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
{ // line 1, address 0x2b6e4
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $a0
|
||||
} // line 1, address 0x2b6f8
|
||||
} // line 1, address 0x2b6f8
|
||||
{ // line 35, address 0x2b708
|
||||
struct CIV_ROUTE_ENTRY *crLoc; // $a1
|
||||
struct CIV_ROUTE_ENTRY *cr; // $a0
|
||||
} // line 46, address 0x2b768
|
||||
{ // line 1, address 0x2b7b0
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
{ // line 1, address 0x2b7b0
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v1
|
||||
} // line 1, address 0x2b7c0
|
||||
} // line 1, address 0x2b7c0
|
||||
{ // line 70, address 0x2b8d8
|
||||
struct CIV_ROUTE_ENTRY *cr; // $a0
|
||||
{ // line 1, address 0x2b908
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
{ // line 1, address 0x2b908
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v1
|
||||
} // line 1, address 0x2b918
|
||||
} // line 1, address 0x2b918
|
||||
} // line 77, address 0x2b928
|
||||
} // line 80, address 0x2b94c
|
||||
/*
|
||||
* Offset 0x2B94C
|
||||
* D:\driver2\game\C\CIV_AI.C (line 3265)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ CivFindStation(struct _CAR_DATA *cp /*$s6*/)
|
||||
{ // line 1, address 0x2b94c
|
||||
struct CIV_ROUTE_ENTRY *rep; // $s3
|
||||
int cx; // stack address -48
|
||||
int cz; // $fp
|
||||
{ // line 1, address 0x2b94c
|
||||
int loop; // $a0
|
||||
{ // line 1, address 0x2b9a4
|
||||
struct _CAR_DATA *cp; // $s6
|
||||
{ // line 1, address 0x2b9a4
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v1
|
||||
} // line 1, address 0x2b9b8
|
||||
} // line 1, address 0x2b9b8
|
||||
} // line 12, address 0x2b9c4
|
||||
{ // line 15, address 0x2b9cc
|
||||
struct _CAR_DATA *cp; // $s6
|
||||
struct CIV_ROUTE_ENTRY *currentNode; // $s3
|
||||
{ // line 15, address 0x2b9cc
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $s0
|
||||
} // line 15, address 0x2b9cc
|
||||
} // line 15, address 0x2b9cc
|
||||
{ // line 17, address 0x2b9cc
|
||||
int sx; // $s5
|
||||
int sz; // $s4
|
||||
int dx; // $s2
|
||||
int dz; // $s1
|
||||
int stepsize; // $a1
|
||||
int square; // $a0
|
||||
{ // line 44, address 0x2ba90
|
||||
struct _CAR_DATA *cp; // $s6
|
||||
struct CIV_ROUTE_ENTRY *currentNode; // $s3
|
||||
{ // line 44, address 0x2ba90
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v1
|
||||
} // line 44, address 0x2baa0
|
||||
} // line 44, address 0x2baa0
|
||||
{ // line 1, address 0x2bab0
|
||||
struct _CAR_DATA *cp; // $s6
|
||||
struct CIV_ROUTE_ENTRY *currentNode; // $s3
|
||||
{ // line 1, address 0x2bab0
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v1
|
||||
} // line 1, address 0x2bac0
|
||||
} // line 1, address 0x2bac0
|
||||
{ // line 1, address 0x2bad0
|
||||
struct _CAR_DATA *cp; // $s6
|
||||
struct CIV_ROUTE_ENTRY *currentNode; // $s3
|
||||
{ // line 1, address 0x2bad0
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $v1
|
||||
} // line 1, address 0x2bae0
|
||||
} // line 1, address 0x2bae0
|
||||
} // line 52, address 0x2baf8
|
||||
} // line 55, address 0x2bb54
|
||||
/*
|
||||
* Offset 0x2BB54
|
||||
* D:\driver2\game\C\CIV_AI.C (line 3337)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ CivFindPointOnPath(struct _CAR_DATA *cp /*$s7*/, int station /*$s2*/, struct VECTOR *ppoint /*$fp*/)
|
||||
{ // line 1, address 0x2bb54
|
||||
struct CIV_ROUTE_ENTRY *cprep; // $a0
|
||||
struct CIV_ROUTE_ENTRY *start; // stack address -48
|
||||
{ // line 9, address 0x2bbb8
|
||||
struct _CAR_DATA *cp; // $s7
|
||||
struct CIV_ROUTE_ENTRY *currentNode; // $a0
|
||||
{ // line 9, address 0x2bbb8
|
||||
struct CIV_ROUTE_ENTRY *retNode; // $s0
|
||||
} // line 9, address 0x2bbb8
|
||||
} // line 9, address 0x2bbb8
|
||||
{ // line 11, address 0x2bbb8
|
||||
int sx; // $s4
|
||||
int sz; // $s5
|
||||
int dx; // $s1
|
||||
int dz; // $s3
|
||||
int stepsize; // $a2
|
||||
} // line 44, address 0x2bcf8
|
||||
} // line 48, address 0x2bd5c
|
||||
/*
|
||||
* Offset 0x2BD5C
|
||||
* D:\driver2\game\C\CIV_AI.C (line 3398)
|
||||
* Stack frame base $sp, length 120
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ CreateRoadblock()
|
||||
{ // line 2, address 0x2bd5c
|
||||
struct _CAR_DATA *cp; // $v1
|
||||
struct _CAR_DATA *lcp; // $s0
|
||||
struct _CAR_DATA *newCar; // $s0
|
||||
struct DRIVER2_STRAIGHT *str; // stack address -72
|
||||
struct DRIVER2_CURVE *crv; // $s7
|
||||
int distAlongSegment; // $s2
|
||||
int lbody; // $s4
|
||||
int dir; // $s6
|
||||
int numLanes; // stack address -68
|
||||
unsigned char externalCopModel; // stack address -64
|
||||
int delta; // $s4
|
||||
int noMoreCars; // stack address -60
|
||||
int newCarId; // $v1
|
||||
{ // line 2, address 0x2bd5c
|
||||
int dir; // $s0
|
||||
} // line 39, address 0x2c0e0
|
||||
{ // line 44, address 0x2c104
|
||||
int theta; // $s0
|
||||
} // line 53, address 0x2c200
|
||||
{ // line 57, address 0x2c248
|
||||
int minAngle; // $a3
|
||||
int curveLength; // $v1
|
||||
} // line 93, address 0x2c39c
|
||||
{ // line 80, address 0x2c460
|
||||
{ // line 85, address 0x2c530
|
||||
} // line 87, address 0x2c54c
|
||||
{ // line 1, address 0x2c5f8
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
} // line 1, address 0x2c6dc
|
||||
{ // line 1, address 0x2c770
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
} // line 1, address 0x2c84c
|
||||
} // line 112, address 0x2c85c
|
||||
{ // line 117, address 0x2c898
|
||||
struct VECTOR startPos2; // stack address -88
|
||||
int deltaAngle; // $a0
|
||||
int dir2NextRow; // $a1
|
||||
int faceDir; // $s1
|
||||
int numSpareCars; // $a0
|
||||
int count; // $s2
|
||||
int numSpots; // $fp
|
||||
{ // line 129, address 0x2c9b0
|
||||
int numCarsToAdd; // $s5
|
||||
{ // line 133, address 0x2c9e4
|
||||
{ // line 1, address 0x2cb2c
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
} // line 1, address 0x2cc10
|
||||
{ // line 1, address 0x2cca4
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
} // line 1, address 0x2cd80
|
||||
} // line 157, address 0x2cd90
|
||||
} // line 158, address 0x2cd9c
|
||||
} // line 159, address 0x2cd9c
|
||||
} // line 166, address 0x2cddc
|
||||
/*
|
||||
* Offset 0x2CE0C
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2144)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitCivCars()
|
||||
{ // line 2, address 0x2ce0c
|
||||
} // line 13, address 0x2ce78
|
||||
/*
|
||||
* Offset 0x2CE78
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2699)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ CivControl(struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0x2ce78
|
||||
{ // line 1, address 0x2ce78
|
||||
} // line 1, address 0x2ce78
|
||||
{ // line 30, address 0x2cef4
|
||||
} // line 32, address 0x2cf28
|
||||
} // line 41, address 0x2cf80
|
||||
/*
|
||||
* Offset 0x2CF80
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2116)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ TrafficLightCycle(int exit /*$a0*/)
|
||||
{ // line 1, address 0x2cf80
|
||||
int timeCnt; // $v1
|
||||
} // line 25, address 0x2cfe8
|
||||
/*
|
||||
* Offset 0x2CFE8
|
||||
* D:\driver2\game\C\CIV_AI.C (line 1977)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ PingOutCar(struct _CAR_DATA *cp /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x2D0EC
|
||||
* D:\driver2\game\C\CIV_AI.C (line 930)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ CivCarFX(struct _CAR_DATA *cp /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x2D184
|
||||
* D:\driver2\game\C\CIV_AI.C (line 891)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
struct _CAR_DATA * /*$ra*/ FindClosestCar(int x /*$t4*/, int y /*$a1*/, int z /*$a2*/, int *distToCarSq /*$a3*/)
|
||||
{ // line 1, address 0x2d184
|
||||
struct _CAR_DATA *retCar; // $t2
|
||||
struct _CAR_DATA *lcp; // $t0
|
||||
unsigned int retDistSq; // $t1
|
||||
int distSq; // $v0
|
||||
int dx; // $a0
|
||||
int dz; // $v1
|
||||
} // line 24, address 0x2d288
|
||||
/*
|
||||
* Offset 0x2D288
|
||||
* D:\driver2\game\C\CIV_AI.C (line 2084)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetUpTrafficLightPhase()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x2D2B4
|
||||
* D:\driver2\game\C\CIV_AI.C (line 918)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ NotTravellingAlongCurve(int x /*$a0*/, int z /*$a1*/, int dir /*$s0*/, struct DRIVER2_CURVE *cv /*$a3*/)
|
||||
{ // line 1, address 0x2d2b4
|
||||
} // line 9, address 0x2d300
|
118
src/C/convert.c
Normal file
118
src/C/convert.c
Normal file
@ -0,0 +1,118 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x2D36C
|
||||
* D:\driver2\game\C\CONVERT.C (line 272)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ BuildWorldMatrix()
|
||||
{ // line 2, address 0x2d36c
|
||||
struct MATRIX newmatrix; // stack address -48
|
||||
} // line 17, address 0x2d460
|
||||
/*
|
||||
* Offset 0x2D460
|
||||
* D:\driver2\game\C\CONVERT.C (line 149)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ Calc_Object_MatrixYZX(struct MATRIX *mat /*$s0*/, struct SVECTOR *angles /*$s1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x2D4D8
|
||||
* D:\driver2\game\C\CONVERT.C (line 182)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ _RotMatrixX(struct MATRIX *m /*$v0*/, short ang /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x2D504
|
||||
* D:\driver2\game\C\CONVERT.C (line 187)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ _RotMatrixY(struct MATRIX *m /*$v0*/, short ang /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x2D530
|
||||
* D:\driver2\game\C\CONVERT.C (line 192)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ _RotMatrixZ(struct MATRIX *m /*$v0*/, short ang /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x2D55C
|
||||
* D:\driver2\game\C\CONVERT.C (line 199)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ RotMatrixXYZ(struct MATRIX *m /*$v0*/, struct SVECTOR *r /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x2D584
|
||||
* D:\driver2\game\C\CONVERT.C (line 205)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ _MatrixRotate(struct VECTOR *pos /*$s0*/)
|
||||
{ // line 1, address 0x2d584
|
||||
struct VECTOR temp; // stack address -24
|
||||
} // line 9, address 0x2d5c4
|
||||
/*
|
||||
* Offset 0x2D5C4
|
||||
* D:\driver2\game\C\CONVERT.C (line 240)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InvertMatrix(struct MATRIX *a /*$a0*/, struct MATRIX *b /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x2D630
|
||||
* D:\driver2\game\C\CONVERT.C (line 334)
|
||||
* Stack frame base $sp, length 176
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ScaleCamera()
|
||||
{ // line 2, address 0x2d630
|
||||
struct MATRIX temp; // stack address -160
|
||||
struct MATRIX temp2; // stack address -128
|
||||
struct MATRIX scale; // stack address -96
|
||||
struct MATRIX scaledcammat; // stack address -64
|
||||
struct VECTOR pos; // stack address -32
|
||||
struct SVECTOR tempang; // stack address -16
|
||||
} // line 27, address 0x2d6e0
|
||||
/*
|
||||
* Offset 0x2D6E0
|
||||
* D:\driver2\game\C\CONVERT.C (line 365)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ Getlong(char *dest /*$a0*/, char *source /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x2D710
|
||||
* D:\driver2\game\C\CONVERT.C (line 387)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ RandomInit(long i1 /*$a0*/, long i2 /*$a1*/)
|
||||
{ // line 2, address 0x2d710
|
||||
int count; // $s0
|
||||
} // line 15, address 0x2d78c
|
||||
/*
|
||||
* Offset 0x2D78C
|
||||
* D:\driver2\game\C\CONVERT.C (line 414)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
long /*$ra*/ Random2(int step /*$a0*/)
|
||||
{ // line 2, address 0x2d78c
|
||||
unsigned int seed; // $a0
|
||||
} // line 6, address 0x2d7f4
|
272
src/C/cop_ai.c
Normal file
272
src/C/cop_ai.c
Normal file
@ -0,0 +1,272 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
COP_DATA gCopData =
|
||||
{ 0, 0, 0, 2048, 0, 4096, 2048, 3000000, { 0, 0, 0, 0, 0 } };
|
||||
|
||||
int speed1[] = { 0xCB, 0xD2, 0xD9 };
|
||||
int speed2[] = { 0xEE, 0x10A, 0x126 };
|
||||
|
||||
char sqtbl[] = {
|
||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
||||
0x81, 0x81, 0x81, 0x82, 0x82, 0x83, 0x83, 0x83, 0x84,
|
||||
0x84, 0x85, 0x86, 0x86, 0x87, 0x88, 0x88, 0x89, 0x8A,
|
||||
0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x90, 0x91,
|
||||
0x92, 0x93, 0x94, 0x95, 0x96, 0x98, 0x99, 0x9A, 0x9B,
|
||||
0x9C, 0x9D, 0x9E, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA6,
|
||||
0xA7, 0xA8, 0xAA, 0xAB, 0xAC, 0xAE, 0xAF, 0xB0, 0xB2,
|
||||
0xB3, 0xB5};
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x2D7F4
|
||||
* D:\driver2\game\C\COP_AI.C (line 593)
|
||||
* Stack frame base $sp, length 152
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ WibbleDownTheRoad(struct VECTOR *from /*$a0*/, int distance /*$s1*/, struct VECTOR *to /*$s5*/)
|
||||
{ // line 1, address 0x2d7f4
|
||||
int th; // $s0
|
||||
int j; // $s3
|
||||
int thl[4]; // stack address -136
|
||||
struct VECTOR pos; // stack address -120
|
||||
struct VECTOR dir; // stack address -104
|
||||
{ // line 11, address 0x2d878
|
||||
struct VECTOR p2; // stack address -88
|
||||
struct VECTOR d2; // stack address -72
|
||||
int colour[3]; // stack address -56
|
||||
} // line 21, address 0x2d904
|
||||
} // line 46, address 0x2da04
|
||||
/*
|
||||
* Offset 0x2DA04
|
||||
* D:\driver2\game\C\COP_AI.C (line 643)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitCops()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x2DB40
|
||||
* D:\driver2\game\C\COP_AI.C (line 708)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ ControlCops()
|
||||
{ // line 2, address 0x2db40
|
||||
{ // line 18, address 0x2db9c
|
||||
int playerID; // $v1
|
||||
} // line 21, address 0x2dbdc
|
||||
{ // line 41, address 0x2dcd4
|
||||
int heading; // $s1
|
||||
int rnd; // $s0
|
||||
} // line 66, address 0x2de04
|
||||
{ // line 76, address 0x2de64
|
||||
int copsWereInPursuit; // $a1
|
||||
} // line 90, address 0x2df04
|
||||
{ // line 93, address 0x2df14
|
||||
} // line 99, address 0x2df48
|
||||
} // line 101, address 0x2df48
|
||||
/*
|
||||
* Offset 0x2DF64
|
||||
* D:\driver2\game\C\COP_AI.C (line 845)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ CopControl1(struct _CAR_DATA *cp /*$s1*/)
|
||||
{ // line 1, address 0x2df64
|
||||
int currentSpeed; // $s7
|
||||
int desiredSteerAngle; // $s4
|
||||
{ // line 48, address 0x2e02c
|
||||
int dx; // $a1
|
||||
int dz; // $a0
|
||||
{ // line 52, address 0x2e080
|
||||
} // line 60, address 0x2e0c0
|
||||
} // line 61, address 0x2e0c0
|
||||
{ // line 67, address 0x2e0d8
|
||||
struct VECTOR pos; // stack address -88
|
||||
} // line 77, address 0x2e2a4
|
||||
{ // line 90, address 0x2e2a4
|
||||
enum AIZone targetZone; // $a0
|
||||
struct VECTOR doordir; // stack address -72
|
||||
int targetFound; // $a1
|
||||
int cx; // $s5
|
||||
int cz; // $s6
|
||||
int dvx; // $s0
|
||||
int dvz; // $s3
|
||||
int dist; // $s2
|
||||
int framesToImpact; // $a1
|
||||
{ // line 139, address 0x2e3c8
|
||||
int dz; // $a1
|
||||
int idvx; // $v1
|
||||
int idvz; // $v0
|
||||
} // line 139, address 0x2e3c8
|
||||
{ // line 204, address 0x2e64c
|
||||
struct iVectNT path[2]; // stack address -56
|
||||
int slidevel; // $a3
|
||||
{ // line 260, address 0x2e950
|
||||
int plcrspd; // $a1
|
||||
} // line 263, address 0x2e9bc
|
||||
} // line 279, address 0x2ea90
|
||||
{ // line 295, address 0x2eae0
|
||||
int b; // $a0
|
||||
} // line 300, address 0x2eb28
|
||||
{ // line 304, address 0x2eb28
|
||||
int steerdif; // $v1
|
||||
int speeddif; // $a2
|
||||
int maxPower; // $a1
|
||||
{ // line 330, address 0x2ec20
|
||||
int sf; // $v1
|
||||
} // line 332, address 0x2ec38
|
||||
} // line 343, address 0x2eccc
|
||||
} // line 343, address 0x2eccc
|
||||
{ // line 352, address 0x2ecec
|
||||
} // line 356, address 0x2ed14
|
||||
} // line 358, address 0x2ed14
|
||||
/*
|
||||
* Offset 0x2ED40
|
||||
* D:\driver2\game\C\COP_AI.C (line 1368)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ ControlCopDetection()
|
||||
{ // line 14, address 0x2ed40
|
||||
int dx; // $v1
|
||||
int dz; // $a0
|
||||
struct VECTOR vec; // stack address -64
|
||||
int ccx; // stack address -32
|
||||
int ccz; // stack address -28
|
||||
char *scratch; // $s4
|
||||
struct _CAR_DATA *lcp; // $s1
|
||||
{ // line 17, address 0x2ed40
|
||||
{ // line 17, address 0x2ed40
|
||||
int angry; // $v1
|
||||
} // line 23, address 0x2ee10
|
||||
} // line 23, address 0x2ee10
|
||||
{ // line 48, address 0x2ee64
|
||||
int dx; // $v1
|
||||
int dz; // $v0
|
||||
} // line 58, address 0x2eee4
|
||||
{ // line 66, address 0x2ef38
|
||||
int distanceToPlayer; // $s0
|
||||
int active; // $s2
|
||||
{ // line 1, address 0x2efd8
|
||||
struct _CAR_DATA *cp; // $s1
|
||||
int distanceToPlayer; // $s0
|
||||
{ // line 1, address 0x2efd8
|
||||
int farDist; // $v1
|
||||
int nearDist; // $v0
|
||||
char result; // $s2
|
||||
{ // line 1, address 0x2eff8
|
||||
int theta; // $v1
|
||||
struct VECTOR delta; // stack address -48
|
||||
{ // line 1, address 0x2f098
|
||||
} // line 1, address 0x2f09c
|
||||
} // line 1, address 0x2f09c
|
||||
} // line 1, address 0x2f09c
|
||||
} // line 1, address 0x2f09c
|
||||
} // line 84, address 0x2f0b8
|
||||
{ // line 110, address 0x2f1cc
|
||||
} // line 110, address 0x2f1cc
|
||||
{ // line 123, address 0x2f1f8
|
||||
{ // line 130, address 0x2f220
|
||||
} // line 150, address 0x2f290
|
||||
} // line 152, address 0x2f2a0
|
||||
{ // line 157, address 0x2f2c4
|
||||
int rnd; // $s0
|
||||
int dir; // $s1
|
||||
} // line 161, address 0x2f330
|
||||
{ // line 166, address 0x2f364
|
||||
int rnd; // $s0
|
||||
int dir; // $s1
|
||||
} // line 168, address 0x2f3fc
|
||||
} // line 174, address 0x2f434
|
||||
/*
|
||||
* Offset 0x2F434
|
||||
* D:\driver2\game\C\COP_AI.C (line 1583)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ControlNumberOfCops()
|
||||
{ // line 2, address 0x2f434
|
||||
int numWantedCops; // $t2
|
||||
{ // line 5, address 0x2f434
|
||||
short *pTrigger; // $a2
|
||||
} // line 13, address 0x2f4bc
|
||||
{ // line 26, address 0x2f508
|
||||
int temp; // $a1
|
||||
} // line 41, address 0x2f5b4
|
||||
{ // line 50, address 0x2f5d8
|
||||
int num_closer; // $a2
|
||||
int cutOffDistance; // $a1
|
||||
{ // line 55, address 0x2f5e8
|
||||
struct _CAR_DATA *lcp; // $a0
|
||||
int tempDist; // $a3
|
||||
{ // line 64, address 0x2f614
|
||||
int copDist; // $v1
|
||||
} // line 75, address 0x2f634
|
||||
} // line 78, address 0x2f644
|
||||
} // line 81, address 0x2f650
|
||||
} // line 88, address 0x2f674
|
||||
/*
|
||||
* Offset 0x2F674
|
||||
* D:\driver2\game\C\COP_AI.C (line 824)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ CopControl(struct _CAR_DATA *cp /*$s1*/)
|
||||
{ // line 1, address 0x2f674
|
||||
} // line 18, address 0x2f6e8
|
||||
/*
|
||||
* Offset 0x2F6E8
|
||||
* D:\driver2\game\C\COP_AI.C (line 577)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ InitCopState(struct _CAR_DATA *cp /*$s0*/, char *extraData /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x2F764
|
||||
* D:\driver2\game\C\COP_AI.C (line 1562)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ PassiveCopTasks(struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0x2f764
|
||||
{ // line 1, address 0x2f7d4
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
} // line 1, address 0x2f82c
|
||||
} // line 14, address 0x2f860
|
||||
/*
|
||||
* Offset 0x2F860
|
||||
* D:\driver2\game\C\COP_AI.C (line 1267)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitCopData(struct COP_DATA *pCopData /*$a0*/)
|
||||
{ // line 1, address 0x2f860
|
||||
short *pTrigger; // $v1
|
||||
short trigger; // $a2
|
||||
} // line 14, address 0x2f8ac
|
||||
/*
|
||||
* Offset 0x2F8AC
|
||||
* D:\driver2\game\C\COP_AI.C (line 1308)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ UpdateCopSightData()
|
||||
{ // line 2, address 0x2f8ac
|
||||
int angry; // $v1
|
||||
} // line 6, address 0x2f944
|
||||
|
||||
/*
|
||||
* Offset 0x2F944
|
||||
* D:\driver2\game\C\COP_AI.C (line 1231)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ FindCost(int x /*$a0*/, int z /*$a1*/, int dvx /*$a2*/, int dvz /*$a3*/)
|
||||
{ // line 1, address 0x2f944
|
||||
int tx; // $v0
|
||||
int tz; // $v0
|
||||
int dx; // $a2
|
||||
int dz; // $v1
|
||||
int d; // $v0
|
||||
} // line 13, address 0x2f9fc
|
168
src/C/cosmetic.c
Normal file
168
src/C/cosmetic.c
Normal file
@ -0,0 +1,168 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
char* CosmeticFiles[] ={
|
||||
"LEVELS\\CHICAGO.LCF",
|
||||
"LEVELS\\HAVANA.LCF",
|
||||
"LEVELS\\VEGAS.LCF",
|
||||
"LEVELS\\RIO.LCF",
|
||||
};
|
||||
|
||||
/*
|
||||
* Offset 0x2F9FC
|
||||
* D:\driver2\game\C\COSMETIC.C (line 252)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ AddReverseLight(struct _CAR_DATA *cp /*$s1*/)
|
||||
{ // line 1, address 0x2f9fc
|
||||
struct CAR_COSMETICS *car_cos; // $a1
|
||||
struct SVECTOR v1; // stack address -32
|
||||
struct CVECTOR col; // stack address -24
|
||||
short cogOffset; // $s2
|
||||
} // line 31, address 0x2fb54
|
||||
/*
|
||||
* Offset 0x2FB54
|
||||
* D:\driver2\game\C\COSMETIC.C (line 325)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ AddIndicatorLight(struct _CAR_DATA *cp /*$s0*/, int Type /*$s6*/)
|
||||
{ // line 1, address 0x2fb54
|
||||
struct CAR_COSMETICS *car_cos; // $a1
|
||||
struct CVECTOR col; // stack address -56
|
||||
struct SVECTOR vfrnt; // stack address -48
|
||||
struct SVECTOR vback; // stack address -40
|
||||
char tempcol; // $s1
|
||||
char *life; // $a0
|
||||
char *life2; // $s3
|
||||
short cogOffset; // $s2
|
||||
} // line 72, address 0x2fe24
|
||||
/*
|
||||
* Offset 0x2FE4C
|
||||
* D:\driver2\game\C\COSMETIC.C (line 407)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ AddBrakeLight(struct _CAR_DATA *cp /*$s5*/)
|
||||
{ // line 1, address 0x2fe4c
|
||||
struct CAR_COSMETICS *car_cos; // $a1
|
||||
struct SVECTOR v1; // stack address -88
|
||||
struct SVECTOR v2; // stack address -80
|
||||
struct SVECTOR vec; // stack address -72
|
||||
struct CVECTOR col; // stack address -64
|
||||
char *life2; // $s2
|
||||
short doubleFlag; // stack address -56
|
||||
short verticalFlag; // stack address -52
|
||||
short address; // $s1
|
||||
short loop; // $fp
|
||||
short damIndex; // $v0
|
||||
short cogOffset; // $a3
|
||||
} // line 97, address 0x30180
|
||||
/*
|
||||
* Offset 0x301B0
|
||||
* D:\driver2\game\C\COSMETIC.C (line 514)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ AddCopCarLight(struct _CAR_DATA *cp /*$t0*/)
|
||||
{ // line 1, address 0x301b0
|
||||
int length; // $a3
|
||||
int light; // $s1
|
||||
int pos; // $s3
|
||||
int side; // $s4
|
||||
int num_lights; // $t5
|
||||
int count_speed; // $t4
|
||||
char col1; // $a2
|
||||
char col2; // $a1
|
||||
static char xpos1[8] = { 0x30, 0x20, 0x10, 0, 0, 0x10, 0x20, 0x30 };
|
||||
int sign; // $t1
|
||||
char *coplife; // $s2
|
||||
struct SVECTOR v1; // stack address -88
|
||||
struct CVECTOR col; // stack address -80
|
||||
struct CAR_COSMETICS *car_cos; // $s0
|
||||
short cogOffset; // $fp
|
||||
} // line 130, address 0x3057c
|
||||
/*
|
||||
* Offset 0x305AC
|
||||
* D:\driver2\game\C\COSMETIC.C (line 653)
|
||||
* Stack frame base $sp, length 128
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ AddNightLights(struct _CAR_DATA *cp /*$s6*/)
|
||||
{ // line 1, address 0x305ac
|
||||
static struct MATRIX work_matrix; // address 0x0
|
||||
struct CAR_COSMETICS *car_cos; // $fp
|
||||
struct SVECTOR Position1; // stack address -104
|
||||
struct SVECTOR Position2; // stack address -96
|
||||
struct SVECTOR vec; // stack address -88
|
||||
struct CVECTOR col; // stack address -80
|
||||
int lit; // stack address -72
|
||||
int lightFlag; // $t0
|
||||
char *life2; // stack address -68
|
||||
short damIndex; // $s5
|
||||
short loop; // stack address -64
|
||||
short address; // $s2
|
||||
short doubleFlag; // stack address -60
|
||||
short verticalFlag; // stack address -56
|
||||
short cogOffset; // stack address -52
|
||||
} // line 266, address 0x30e04
|
||||
/*
|
||||
* Offset 0x30E04
|
||||
* D:\driver2\game\C\COSMETIC.C (line 989)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ AddSmokingEngine(struct _CAR_DATA *cp /*$s0*/, int black_smoke /*$s2*/, int WheelSpeed /*$s3*/)
|
||||
{ // line 1, address 0x30e04
|
||||
struct VECTOR SmokePos; // stack address -64
|
||||
struct CAR_COSMETICS *car_cos; // $a0
|
||||
struct VECTOR Drift; // stack address -48
|
||||
struct SVECTOR svec; // stack address -32
|
||||
} // line 49, address 0x30ff8
|
||||
/*
|
||||
* Offset 0x31014
|
||||
* D:\driver2\game\C\COSMETIC.C (line 1048)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ AddFlamingEngine(struct _CAR_DATA *cp /*$s1*/)
|
||||
{ // line 1, address 0x31014
|
||||
struct VECTOR SmokePos; // stack address -56
|
||||
struct SVECTOR svec; // stack address -40
|
||||
struct CAR_COSMETICS *car_cos; // $a0
|
||||
struct VECTOR Drift; // stack address -32
|
||||
} // line 36, address 0x311b4
|
||||
/*
|
||||
* Offset 0x311C8
|
||||
* D:\driver2\game\C\COSMETIC.C (line 188)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ LoadCosmetics(int level /*$a0*/)
|
||||
{ // line 2, address 0x311c8
|
||||
} // line 15, address 0x31218
|
||||
/*
|
||||
* Offset 0x31218
|
||||
* D:\driver2\game\C\COSMETIC.C (line 213)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ ProcessCosmeticsLump(char *lump_ptr /*$s2*/, int lump_size /*$a1*/)
|
||||
{ // line 1, address 0x31218
|
||||
int i; // $t0
|
||||
int model; // $a1
|
||||
int address; // $a0
|
||||
{ // line 23, address 0x312a0
|
||||
} // line 27, address 0x313a0
|
||||
} // line 30, address 0x313c8
|
||||
/*
|
||||
* Offset 0x313C8
|
||||
* D:\driver2\game\C\COSMETIC.C (line 293)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetupSpecCosmetics(char *loadbuffer /*$a0*/)
|
||||
{ // line 5, address 0x313c8
|
||||
int *to; // $a1
|
||||
int *from; // $a0
|
||||
int *end; // $v1
|
||||
} // line 18, address 0x31400
|
236
src/C/cutscene.c
Normal file
236
src/C/cutscene.c
Normal file
@ -0,0 +1,236 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x31400
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 646)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DrawInGameCutscene()
|
||||
{ // line 2, address 0x31400
|
||||
struct TILE *tile; // $s0
|
||||
} // line 30, address 0x31550
|
||||
/*
|
||||
* Offset 0x31550
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 683)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ TriggerChase(int *car /*$s2*/, int cutscene /*$a1*/)
|
||||
{ // line 1, address 0x31550
|
||||
void *inform; // $s3
|
||||
int i; // $a0
|
||||
int length; // $s1
|
||||
{ // line 12, address 0x315c0
|
||||
} // line 38, address 0x3170c
|
||||
} // line 42, address 0x31754
|
||||
/*
|
||||
* Offset 0x31754
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 838)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ ReleaseInGameCutscene()
|
||||
{ // line 2, address 0x31754
|
||||
{ // line 7, address 0x317b0
|
||||
struct STREAM_SOURCE *pinfo; // $a0
|
||||
int i; // $s0
|
||||
} // line 79, address 0x319e0
|
||||
} // line 105, address 0x31a88
|
||||
/*
|
||||
* Offset 0x31A88
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 1040)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ TriggerInGameCutsceneSystem(int cutscene /*$a0*/)
|
||||
{ // line 1, address 0x31a88
|
||||
static char padid[8]; // address 0x0
|
||||
int bDamageOverride; // stack address -64
|
||||
int i; // $s2
|
||||
int id; // $v1
|
||||
{ // line 18, address 0x31acc
|
||||
{ // line 54, address 0x31c2c
|
||||
int car; // $v1
|
||||
int model; // $v1
|
||||
int palette; // $a1
|
||||
} // line 65, address 0x31c84
|
||||
{ // line 85, address 0x31d14
|
||||
{ // line 90, address 0x31d74
|
||||
int car; // $v1
|
||||
} // line 104, address 0x31df8
|
||||
} // line 112, address 0x31df8
|
||||
} // line 146, address 0x31f08
|
||||
} // line 151, address 0x31f44
|
||||
/*
|
||||
* Offset 0x31F44
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 1199)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetNullPlayer(int plr /*$a0*/)
|
||||
{ // line 1, address 0x31f44
|
||||
} // line 14, address 0x31fc8
|
||||
/*
|
||||
* Offset 0x31FC8
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 1221)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetNullPlayerDontKill(int plr /*$a0*/)
|
||||
{ // line 1, address 0x31fc8
|
||||
} // line 14, address 0x32048
|
||||
/*
|
||||
* Offset 0x32048
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 1244)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ DestroyPlayer(int plr /*$s0*/, int fully /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x32180
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 1299)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
int /*$ra*/ LoadCutsceneToReplayBuffer(int residentCutscene /*$a0*/)
|
||||
{ // line 2, address 0x32180
|
||||
struct REPLAY_SAVE_HEADER *rheader; // $a1
|
||||
struct REPLAY_STREAM_HEADER *sheader; // $t1
|
||||
char filename[64]; // stack address -88
|
||||
char *pt; // $s1
|
||||
int i; // $a0
|
||||
int length; // $s0
|
||||
} // line 56, address 0x324a4
|
||||
/*
|
||||
* Offset 0x324A4
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 1362)
|
||||
* Stack frame base $sp, length 456
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
int /*$ra*/ LoadCutsceneToBuffer(int subindex /*$s3*/)
|
||||
{ // line 1, address 0x324a4
|
||||
struct CUTSCENE_HEADER header; // stack address -440
|
||||
struct REPLAY_SAVE_HEADER rheader; // stack address -376
|
||||
char filename[64]; // stack address -88
|
||||
int address; // $a2
|
||||
int length; // $s0
|
||||
} // line 78, address 0x32628
|
||||
/*
|
||||
* Offset 0x32628
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 566)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitInGameCutsceneVariables()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x32694
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 594)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ HandleInGameCutscene()
|
||||
{ // line 2, address 0x32694
|
||||
{ // line 37, address 0x32774
|
||||
} // line 48, address 0x32798
|
||||
} // line 50, address 0x327a8
|
||||
/*
|
||||
* Offset 0x327A8
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 732)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ TriggerInGameCutscene(int cutscene /*$s0*/)
|
||||
{ // line 1, address 0x327a8
|
||||
{ // line 30, address 0x32858
|
||||
} // line 37, address 0x32894
|
||||
} // line 38, address 0x32894
|
||||
/*
|
||||
* Offset 0x328A4
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 778)
|
||||
* Stack frame base $sp, length 152
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ CalcInGameCutsceneSize()
|
||||
{ // line 39, address 0x328a4
|
||||
struct CUTSCENE_HEADER header; // stack address -136
|
||||
char filename[64]; // stack address -72
|
||||
} // line 52, address 0x32930
|
||||
/*
|
||||
* Offset 0x32930
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 951)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ PreLoadInGameCutscene(int chase /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x32950
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 965)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ CutsceneCameraChange(int cameracnt /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x32A1C
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 1010)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ LoadInGameCutscene(int subindex /*$s1*/)
|
||||
{ // line 1, address 0x32a1c
|
||||
int ret; // $s0
|
||||
} // line 23, address 0x32a9c
|
||||
/*
|
||||
* Offset 0x32A9C
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 1274)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ FindNextCutChange(int cameracnt /*$a0*/)
|
||||
{ // line 1, address 0x32a9c
|
||||
int found; // $t0
|
||||
int count; // $a3
|
||||
int nextframe; // $a2
|
||||
} // line 17, address 0x32b00
|
||||
/*
|
||||
* Offset 0x32B00
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 1471)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
int /*$ra*/ LoadCutsceneInformation(int cutscene /*$s2*/)
|
||||
{ // line 1, address 0x32b00
|
||||
int i; // $s1
|
||||
} // line 27, address 0x32bbc
|
||||
/*
|
||||
* Offset 0x32BBC
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 1505)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ FreeCutsceneBuffer()
|
||||
{ // line 2, address 0x32bbc
|
||||
int i; // $v1
|
||||
} // line 13, address 0x32c28
|
||||
/*
|
||||
* Offset 0x32C28
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 1520)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ IsCutsceneResident(int cutscene /*$a0*/)
|
||||
{ // line 1, address 0x32c28
|
||||
int i; // $a1
|
||||
} // line 13, address 0x32c70
|
||||
/*
|
||||
* Offset 0x32C70
|
||||
* D:\driver2\game\C\CUTSCENE.C (line 1442)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ShowCutsceneError()
|
||||
{
|
||||
}
|
997
src/C/debris.c
Normal file
997
src/C/debris.c
Normal file
@ -0,0 +1,997 @@
|
||||
#include "../decomp_defs.h"
|
||||
#include "texture.h"
|
||||
|
||||
TRI_POINT debris_rot1[32]; // offset 0xC0A60
|
||||
TRI_POINT debris_rot2[32]; // offset 0xC0BE0
|
||||
TRI_POINT debris_rot3[32]; // offset 0xC0D60
|
||||
TRI_POINT leaf_rot[32]; // offset 0xC1DC0
|
||||
TRI_POINT litter_rot[32]; // offset 0xC08D0
|
||||
|
||||
TRI_POINT* debris_rot_table[5] = {
|
||||
debris_rot1,
|
||||
leaf_rot,
|
||||
litter_rot,
|
||||
debris_rot2,
|
||||
debris_rot3,
|
||||
};
|
||||
|
||||
// debris_colour[4][31]
|
||||
CVECTOR debris_colour[124] =
|
||||
{
|
||||
{ 100u, 100u, 100u, 0u },
|
||||
{ 214u, 214u, 244u, 0u },
|
||||
{ 195u, 79u, 65u, 0u },
|
||||
{ 83u, 83u, 101u, 0u },
|
||||
{ 197u, 142u, 80u, 0u },
|
||||
{ 222u, 204u, 196u, 0u },
|
||||
{ 189u, 168u, 114u, 0u },
|
||||
{ 203u, 180u, 121u, 0u },
|
||||
{ 132u, 145u, 103u, 0u },
|
||||
{ 168u, 143u, 122u, 0u },
|
||||
{ 107u, 107u, 107u, 0u },
|
||||
{ 192u, 110u, 110u, 0u },
|
||||
{ 130u, 130u, 130u, 0u },
|
||||
{ 101u, 129u, 145u, 0u },
|
||||
{ 130u, 130u, 130u, 0u },
|
||||
{ 181u, 88u, 88u, 0u },
|
||||
{ 130u, 105u, 83u, 0u },
|
||||
{ 164u, 164u, 164u, 0u },
|
||||
{ 126u, 143u, 108u, 0u },
|
||||
{ 140u, 163u, 181u, 0u },
|
||||
{ 143u, 129u, 152u, 0u },
|
||||
{ 156u, 138u, 118u, 0u },
|
||||
{ 190u, 190u, 190u, 0u },
|
||||
{ 203u, 112u, 112u, 0u },
|
||||
{ 255u, 242u, 201u, 0u },
|
||||
{ 167u, 145u, 90u, 0u },
|
||||
{ 190u, 190u, 190u, 0u },
|
||||
{ 150u, 164u, 184u, 0u },
|
||||
{ 102u, 102u, 102u, 0u },
|
||||
{ 140u, 114u, 99u, 0u },
|
||||
{ 75u, 63u, 134u, 0u },
|
||||
{ 100u, 100u, 100u, 0u },
|
||||
{ 83u, 82u, 97u, 0u },
|
||||
{ 138u, 179u, 201u, 0u },
|
||||
{ 114u, 159u, 183u, 0u },
|
||||
{ 107u, 61u, 46u, 0u },
|
||||
{ 162u, 120u, 76u, 0u },
|
||||
{ 235u, 227u, 214u, 0u },
|
||||
{ 197u, 138u, 121u, 0u },
|
||||
{ 159u, 169u, 131u, 0u },
|
||||
{ 146u, 178u, 195u, 0u },
|
||||
{ 181u, 151u, 101u, 0u },
|
||||
{ 230u, 191u, 139u, 0u },
|
||||
{ 147u, 147u, 151u, 0u },
|
||||
{ 182u, 127u, 138u, 0u },
|
||||
{ 160u, 165u, 127u, 0u },
|
||||
{ 175u, 203u, 225u, 0u },
|
||||
{ 211u, 175u, 117u, 0u },
|
||||
{ 209u, 167u, 118u, 0u },
|
||||
{ 157u, 147u, 140u, 0u },
|
||||
{ 210u, 191u, 145u, 0u },
|
||||
{ 155u, 185u, 148u, 0u },
|
||||
{ 158u, 210u, 254u, 0u },
|
||||
{ 206u, 176u, 134u, 0u },
|
||||
{ 236u, 173u, 117u, 0u },
|
||||
{ 146u, 146u, 146u, 0u },
|
||||
{ 88u, 103u, 128u, 0u },
|
||||
{ 96u, 96u, 96u, 0u },
|
||||
{ 125u, 92u, 92u, 0u },
|
||||
{ 184u, 174u, 155u, 0u },
|
||||
{ 42u, 42u, 42u, 0u },
|
||||
{ 219u, 37u, 130u, 0u },
|
||||
{ 100u, 100u, 100u, 0u },
|
||||
{ 112u, 110u, 112u, 0u },
|
||||
{ 230u, 212u, 214u, 0u },
|
||||
{ 178u, 181u, 175u, 0u },
|
||||
{ 120u, 120u, 120u, 0u },
|
||||
{ 102u, 101u, 115u, 0u },
|
||||
{ 70u, 83u, 100u, 0u },
|
||||
{ 206u, 108u, 88u, 0u },
|
||||
{ 220u, 136u, 107u, 0u },
|
||||
{ 97u, 97u, 97u, 0u },
|
||||
{ 139u, 116u, 150u, 0u },
|
||||
{ 173u, 173u, 173u, 0u },
|
||||
{ 104u, 133u, 173u, 0u },
|
||||
{ 224u, 196u, 139u, 0u },
|
||||
{ 108u, 146u, 141u, 0u },
|
||||
{ 82u, 82u, 82u, 0u },
|
||||
{ 123u, 123u, 123u, 0u },
|
||||
{ 140u, 67u, 67u, 0u },
|
||||
{ 103u, 92u, 121u, 0u },
|
||||
{ 219u, 192u, 148u, 0u },
|
||||
{ 160u, 185u, 195u, 0u },
|
||||
{ 158u, 173u, 130u, 0u },
|
||||
{ 183u, 183u, 183u, 0u },
|
||||
{ 126u, 98u, 84u, 0u },
|
||||
{ 126u, 125u, 156u, 0u },
|
||||
{ 36u, 74u, 203u, 0u },
|
||||
{ 105u, 105u, 105u, 0u },
|
||||
{ 162u, 179u, 183u, 0u },
|
||||
{ 102u, 130u, 162u, 0u },
|
||||
{ 149u, 88u, 88u, 0u },
|
||||
{ 119u, 145u, 129u, 0u },
|
||||
{ 100u, 100u, 100u, 0u },
|
||||
{ 153u, 149u, 150u, 0u },
|
||||
{ 118u, 110u, 131u, 0u },
|
||||
{ 135u, 110u, 89u, 0u },
|
||||
{ 191u, 102u, 66u, 0u },
|
||||
{ 95u, 90u, 101u, 0u },
|
||||
{ 157u, 171u, 186u, 0u },
|
||||
{ 203u, 184u, 132u, 0u },
|
||||
{ 221u, 100u, 100u, 0u },
|
||||
{ 149u, 149u, 149u, 0u },
|
||||
{ 100u, 118u, 145u, 0u },
|
||||
{ 78u, 78u, 78u, 0u },
|
||||
{ 105u, 128u, 107u, 0u },
|
||||
{ 203u, 94u, 94u, 0u },
|
||||
{ 163u, 178u, 152u, 0u },
|
||||
{ 167u, 119u, 117u, 0u },
|
||||
{ 117u, 139u, 142u, 0u },
|
||||
{ 160u, 160u, 160u, 0u },
|
||||
{ 92u, 92u, 92u, 0u },
|
||||
{ 229u, 144u, 136u, 0u },
|
||||
{ 145u, 167u, 149u, 0u },
|
||||
{ 198u, 173u, 173u, 0u },
|
||||
{ 137u, 163u, 175u, 0u },
|
||||
{ 173u, 173u, 173u, 0u },
|
||||
{ 143u, 143u, 143u, 0u },
|
||||
{ 218u, 198u, 154u, 0u },
|
||||
{ 104u, 134u, 78u, 0u },
|
||||
{ 172u, 116u, 86u, 0u },
|
||||
{ 155u, 170u, 185u, 0u },
|
||||
{ 122u, 142u, 147u, 0u },
|
||||
{ 193u, 193u, 193u, 0u }
|
||||
};
|
||||
|
||||
unsigned char grassColour[4][3] = {
|
||||
{0x6E, 0x73, 0x43},
|
||||
{0x40, 0x37, 0x31},
|
||||
{0x5B, 0x68, 0x38},
|
||||
{0x76, 0x6C, 0x59}
|
||||
};
|
||||
|
||||
VECTOR dummy = { 0 };
|
||||
|
||||
/*
|
||||
* Offset 0x32C78
|
||||
* D:\driver2\game\C\DEBRIS.C (line 790)
|
||||
* Stack frame base $sp, length 848
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ PlacePoolForCar(struct _CAR_DATA *cp /*$s4*/, struct CVECTOR *col /*stack 4*/, int front /*$a2*/)
|
||||
{ // line 1, address 0x32c78
|
||||
int car_road_height; // $s2
|
||||
struct SVECTOR s[27]; // stack address -832
|
||||
struct SVECTOR *ptr; // $s1
|
||||
struct SVECTOR sout[27]; // stack address -616
|
||||
struct VECTOR s1[12]; // stack address -400
|
||||
struct VECTOR *ptr1; // $s0
|
||||
struct POLY_FT4 *poly; // $t0
|
||||
struct MATRIX final_matrix; // stack address -208
|
||||
struct VECTOR averagepos; // stack address -176
|
||||
int in_car; // $t0
|
||||
int z; // stack address -48
|
||||
int sub_level; // $fp
|
||||
int count; // $s3
|
||||
struct VECTOR mid_position; // stack address -160
|
||||
{ // line 23, address 0x32d54
|
||||
short farz; // $a2
|
||||
short nearz; // $a0
|
||||
} // line 108, address 0x32f28
|
||||
{ // line 114, address 0x32f38
|
||||
} // line 130, address 0x32fa0
|
||||
{ // line 147, address 0x3301c
|
||||
struct VECTOR toss; // stack address -144
|
||||
int temp_y; // $a1
|
||||
} // line 161, address 0x330d4
|
||||
{ // line 164, address 0x3310c
|
||||
long n[4]; // stack address -128
|
||||
} // line 170, address 0x331d4
|
||||
{ // line 177, address 0x33258
|
||||
int count; // $s2
|
||||
{ // line 206, address 0x3342c
|
||||
long z[15]; // stack address -112
|
||||
{ // line 216, address 0x33484
|
||||
char *VertIdx; // $s0
|
||||
{ // line 228, address 0x33504
|
||||
} // line 233, address 0x33594
|
||||
} // line 234, address 0x33594
|
||||
} // line 235, address 0x335a4
|
||||
} // line 237, address 0x335a4
|
||||
} // line 239, address 0x335ac
|
||||
/*
|
||||
* Offset 0x335DC
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1327)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ AddLeaf(struct VECTOR *Position /*$s1*/, int num_leaves /*$s5*/, int Type /*$s3*/)
|
||||
{ // line 1, address 0x335dc
|
||||
struct LEAF *myleaf; // $a1
|
||||
int num; // $v1
|
||||
int loop; // $s2
|
||||
int temprand; // $s0
|
||||
{ // line 16, address 0x33640
|
||||
{ // line 74, address 0x3374c
|
||||
} // line 79, address 0x33760
|
||||
{ // line 83, address 0x33774
|
||||
int temp; // $v0
|
||||
} // line 83, address 0x33774
|
||||
{ // line 89, address 0x337a0
|
||||
int temp; // $v0
|
||||
} // line 92, address 0x337b4
|
||||
} // line 93, address 0x337b4
|
||||
} // line 101, address 0x337ec
|
||||
/*
|
||||
* Offset 0x33814
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1493)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ InitDebrisNames()
|
||||
{ // line 2, address 0x33814
|
||||
|
||||
GetTextureDetails("SMOKE", &smoke_texture);
|
||||
GetTextureDetails("DEBRIS", &debris_texture);
|
||||
GetTextureDetails("LITTER", &litter_texture);
|
||||
|
||||
GetTextureDetails("COPLIGHT", &cop_texture);
|
||||
GetTextureDetails("LIGHT", &light_texture);
|
||||
GetTextureDetails("SKID", &gTyreTexture);
|
||||
GetTextureDetails("FLARE", &flare_texture);
|
||||
GetTextureDetails("SPLASH", &sea_texture);
|
||||
GetTextureDetails("SWBIRD1", &bird_texture1);
|
||||
GetTextureDetails("SWBIRD2", &bird_texture2);
|
||||
|
||||
GetTextureDetails("LENSFLR", &lensflare_texture);
|
||||
GetTextureDetails("SKYSUN", &sun_texture);
|
||||
GetTextureDetails("SKYMOON", &moon_texture);
|
||||
GetTextureDetails("DROP", &drop_texture);
|
||||
|
||||
GetTextureDetails("DIGIT", &digit_texture);
|
||||
SetCLUT16Flags(digit_texture.clutid, 0x6, 0);
|
||||
|
||||
GetTextureDetails("COLLON", &collon_texture);
|
||||
|
||||
GetTextureDetails("JEANS1", &jeans_texture);
|
||||
GetTextureDetails("ARM1", &arm1_texture);
|
||||
GetTextureDetails("FOREARM1", &forearm1_texture);
|
||||
GetTextureDetails("CHEST1", &chest1_texture);
|
||||
GetTextureDetails("LOWHEAD", &head1_texture);
|
||||
|
||||
GetTextureDetails("ADDCAM", &addcam);
|
||||
GetTextureDetails("FRAMEADV", &frameadv);
|
||||
GetTextureDetails("AUTO", &autocam);
|
||||
GetTextureDetails("CHASEC", &chasecar);
|
||||
GetTextureDetails("CHOOSECA", &choosecar);
|
||||
GetTextureDetails("CLOCK", &clock);
|
||||
|
||||
GetTextureDetails("DELCAM", &delcam);
|
||||
GetTextureDetails("EDITCAM", &editcam);
|
||||
GetTextureDetails("FIXEDCA", &fixedcam);
|
||||
GetTextureDetails("INCAR", &incar);
|
||||
GetTextureDetails("LENSCHA", &lenschan);
|
||||
GetTextureDetails("LOOKCAR", &lookcar);
|
||||
GetTextureDetails("MOVECMP", &movecam);
|
||||
GetTextureDetails("MOVECAM", &movecampos); // is that intended to be wrong???
|
||||
|
||||
GetTextureDetails("OK", &ok);
|
||||
GetTextureDetails("PAUSE", &pause);
|
||||
GetTextureDetails("PLAYCAM", &playcam);
|
||||
GetTextureDetails("PLAYPAU", &playpause);
|
||||
GetTextureDetails("SAVE2CA", &save2card);
|
||||
GetTextureDetails("RESTREP", &restart);
|
||||
|
||||
GetTextureDetails("HEAD1", &texturePedHead);
|
||||
GetTextureDetails("TSHADOW", &tannerShadow_texture);
|
||||
GetTextureDetails("LIGHTREF", &lightref_texture);
|
||||
|
||||
GetTextureDetails("LIGHT", &light_pool_texture);
|
||||
|
||||
texture_is_icon = 0;
|
||||
head1_texture.coords.u3 = head1_texture.coords.u0 + 8;
|
||||
head1_texture.coords.u1 = head1_texture.coords.u0 + 8;
|
||||
|
||||
InitButtonTextures();
|
||||
InitTannerShadow();
|
||||
|
||||
} // line 62, address 0x33c04
|
||||
/*
|
||||
* Offset 0x33C04
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1564)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ InitDebris()
|
||||
{ // line 2, address 0x33c04
|
||||
int loop; // $v1
|
||||
int count; // $s0
|
||||
struct TPAN texnum; // stack address -88
|
||||
struct TRI_POINT_LONG temptri; // stack address -80
|
||||
struct BVECTOR *debrisPTR; // $a0
|
||||
{ // line 37, address 0x33d5c
|
||||
{ // line 41, address 0x33d78
|
||||
} // line 46, address 0x33de8
|
||||
} // line 63, address 0x33e94
|
||||
} // line 110, address 0x34010
|
||||
/*
|
||||
* Offset 0x34010
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1753)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ AddGroundDebris()
|
||||
{ // line 2, address 0x34010
|
||||
struct VECTOR Position; // stack address -48
|
||||
int seed; // $s0
|
||||
int number; // $v0
|
||||
int count; // $s3
|
||||
int xbound; // $a1
|
||||
int zbound; // $a0
|
||||
int type; // $a2
|
||||
struct CELL_OBJECT *cop; // $s1
|
||||
struct MODEL *model; // $s2
|
||||
{ // line 30, address 0x340e4
|
||||
} // line 51, address 0x34168
|
||||
} // line 54, address 0x34178
|
||||
/*
|
||||
* Offset 0x341A0
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1815)
|
||||
* Stack frame base $sp, length 144
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawSmashable_sprites()
|
||||
{ // line 2, address 0x341a0
|
||||
int count; // $s6
|
||||
struct VECTOR pos; // stack address -128
|
||||
struct DAMAGED_OBJECT *dam; // $s2
|
||||
{ // line 11, address 0x3420c
|
||||
struct MATRIX object_matrix; // stack address -112
|
||||
struct MATRIX spritematrix; // stack address -80
|
||||
struct MATRIX *finalmatrix; // $s0
|
||||
struct MODEL *model; // $s3
|
||||
{ // line 46, address 0x343c4
|
||||
unsigned long colours; // $a0
|
||||
} // line 55, address 0x3441c
|
||||
} // line 60, address 0x34450
|
||||
} // line 62, address 0x3448c
|
||||
/*
|
||||
* Offset 0x3448C
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1925)
|
||||
* Stack frame base $sp, length 128
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ AddSmallStreetLight(struct CELL_OBJECT *cop /*$s1*/, int x /*$s3*/, int y /*$s6*/, int z /*$s4*/, int type /*stack 16*/)
|
||||
{ // line 1, address 0x3448c
|
||||
struct VECTOR v1; // stack address -112
|
||||
struct VECTOR v2; // stack address -96
|
||||
struct VECTOR v3; // stack address -80
|
||||
struct SVECTOR pos; // stack address -64
|
||||
struct CVECTOR col; // stack address -56
|
||||
struct CVECTOR col1; // stack address -48
|
||||
int count; // $v1
|
||||
short angle; // $s2
|
||||
int halo_size; // $fp
|
||||
int length; // $s5
|
||||
int LampId; // $s7
|
||||
struct DAMAGED_LAMP *dam; // $s0
|
||||
{ // line 36, address 0x34554
|
||||
} // line 42, address 0x345a8
|
||||
} // line 114, address 0x34890
|
||||
/*
|
||||
* Offset 0x348C0
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2049)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ AddLightEffect(struct CELL_OBJECT *cop /*$t0*/, int x /*$t2*/, int y /*$a2*/, int z /*$a3*/, int type /*stack 16*/, int colour /*stack 20*/)
|
||||
{ // line 1, address 0x348c0
|
||||
struct VECTOR v1; // stack address -88
|
||||
struct VECTOR v2; // stack address -72
|
||||
struct VECTOR v3; // stack address -56
|
||||
struct SVECTOR pos; // stack address -40
|
||||
struct CVECTOR col; // stack address -32
|
||||
struct CVECTOR col1; // stack address -24
|
||||
short angle; // $v1
|
||||
int length; // $s1
|
||||
} // line 126, address 0x34cd4
|
||||
/*
|
||||
* Offset 0x34CD4
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2178)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ PreLampStreak()
|
||||
{ // line 2, address 0x34cd4
|
||||
int count; // $a3
|
||||
} // line 20, address 0x34d84
|
||||
/*
|
||||
* Offset 0x34D84
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2230)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ damage_lamp(struct CELL_OBJECT *cop /*$a2*/)
|
||||
{ // line 1, address 0x34d84
|
||||
int count; // $v1
|
||||
int old_damage; // $v0
|
||||
} // line 15, address 0x34e14
|
||||
/*
|
||||
* Offset 0x34E14
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2255)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ damage_object(struct CELL_OBJECT *cop /*$s1*/, struct VECTOR *velocity /*$a1*/)
|
||||
{ // line 1, address 0x34e14
|
||||
struct DAMAGED_OBJECT *dam; // $s0
|
||||
{ // line 1, address 0x34e14
|
||||
struct PACKED_CELL_OBJECT *pcop; // $a0
|
||||
} // line 1, address 0x34e14
|
||||
} // line 63, address 0x34fcc
|
||||
/*
|
||||
* Offset 0x34FCC
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2326)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ AddTrafficLight(struct CELL_OBJECT *cop /*$t4*/, int x /*$t6*/, int y /*$t7*/, int z /*$a3*/, int flag /*stack 16*/, int yang /*stack 20*/)
|
||||
{ // line 1, address 0x34fcc
|
||||
struct CVECTOR a; // stack address -80
|
||||
struct CVECTOR b; // stack address -72
|
||||
struct CVECTOR c; // stack address -64
|
||||
struct VECTOR v1; // stack address -56
|
||||
struct VECTOR v2; // stack address -40
|
||||
int lDiffAnglesX; // $s2
|
||||
int lDiffAnglesY; // $s1
|
||||
int AbsX; // $a2
|
||||
int AbsY; // $a1
|
||||
int tempfade; // $v0
|
||||
{ // line 1, address 0x34fcc
|
||||
int c; // $t1
|
||||
int s; // $t2
|
||||
} // line 1, address 0x34fcc
|
||||
} // line 90, address 0x35318
|
||||
/*
|
||||
* Offset 0x35334
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2462)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ ShowCarlight(struct SVECTOR *v1 /*$s6*/, struct _CAR_DATA *cp /*$s3*/, struct CVECTOR *col /*$s1*/, short length /*$s5*/, struct TEXTURE_DETAILS *texture /*stack 16*/, int flag /*stack 20*/)
|
||||
{ // line 1, address 0x35334
|
||||
int CarLightFade; // $a1
|
||||
struct VECTOR v1t; // stack address -72
|
||||
struct VECTOR v1l; // stack address -56
|
||||
struct CVECTOR flareCol; // stack address -40
|
||||
int front; // $a0
|
||||
} // line 52, address 0x3559c
|
||||
/*
|
||||
* Offset 0x355C4
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2523)
|
||||
* Stack frame base $sp, length 40
|
||||
*/
|
||||
void /*$ra*/ ShowLight1(struct VECTOR *v1 /*$a0*/, struct CVECTOR *col /*$a1*/, short length /*$a2*/, struct TEXTURE_DETAILS *texture /*$a3*/)
|
||||
{ // line 1, address 0x355c4
|
||||
struct SVECTOR vert[4]; // stack address -40
|
||||
struct POLY_FT4 *poly; // $t0
|
||||
int z; // stack address -8
|
||||
} // line 52, address 0x357b0
|
||||
/*
|
||||
* Offset 0x357B8
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2579)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ ShowLight(struct VECTOR *v1 /*$s0*/, struct CVECTOR *col /*$s3*/, short length /*$s4*/, struct TEXTURE_DETAILS *texture /*$s2*/)
|
||||
{ // line 1, address 0x357b8
|
||||
struct SVECTOR vert[4]; // stack address -88
|
||||
struct POLY_FT4 *poly; // $s1
|
||||
int z; // stack address -40
|
||||
int index; // $a1
|
||||
int tail_width; // $s5
|
||||
{ // line 65, address 0x35abc
|
||||
int loop; // $a1
|
||||
} // line 71, address 0x35b14
|
||||
{ // line 75, address 0x35b3c
|
||||
struct POLY_G4 *poly1; // $s0
|
||||
int dx; // $a0
|
||||
int dy; // $v0
|
||||
int angle; // $v0
|
||||
int width; // $s2
|
||||
int c; // $a0
|
||||
int s; // $a2
|
||||
int length; // $v0
|
||||
struct SVECTOR tail; // stack address -56
|
||||
struct SVECTOR head; // stack address -48
|
||||
} // line 130, address 0x35f20
|
||||
{ // line 148, address 0x35fd0
|
||||
int loop; // $a3
|
||||
} // line 154, address 0x36050
|
||||
{ // line 158, address 0x3608c
|
||||
struct POLY_G4 *poly1; // $s0
|
||||
int dx; // $a2
|
||||
int dy; // $a1
|
||||
int angle; // $v0
|
||||
int width; // $s1
|
||||
int c; // $a2
|
||||
int s; // $a1
|
||||
int length; // $v0
|
||||
struct SVECTOR tail; // stack address -56
|
||||
struct SVECTOR head; // stack address -48
|
||||
} // line 213, address 0x36470
|
||||
} // line 215, address 0x36470
|
||||
/*
|
||||
* Offset 0x36494
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2804)
|
||||
* Stack frame base $sp, length 40
|
||||
*/
|
||||
void /*$ra*/ ShowGroundLight(struct VECTOR *v1 /*$a0*/, struct CVECTOR *col /*$a1*/, short length /*$a2*/)
|
||||
{ // line 1, address 0x36494
|
||||
struct SVECTOR vert[4]; // stack address -40
|
||||
struct POLY_FT4 *poly; // $t0
|
||||
int z; // stack address -8
|
||||
} // line 54, address 0x366e8
|
||||
/*
|
||||
* Offset 0x366F0
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2869)
|
||||
* Stack frame base $sp, length 40
|
||||
*/
|
||||
void /*$ra*/ RoundShadow(struct VECTOR *v1 /*$a0*/, struct CVECTOR *col /*$a1*/, short length /*$a2*/)
|
||||
{ // line 1, address 0x366f0
|
||||
struct SVECTOR vert[4]; // stack address -40
|
||||
struct POLY_FT4 *poly; // $t0
|
||||
int z; // stack address -8
|
||||
} // line 64, address 0x36938
|
||||
/*
|
||||
* Offset 0x36940
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2945)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ ShowFlare(struct VECTOR *v1 /*$a0*/, struct CVECTOR *col /*$s2*/, short length /*$a2*/, int rotation /*$a3*/)
|
||||
{ // line 1, address 0x36940
|
||||
struct SVECTOR vert[4]; // stack address -96
|
||||
struct POLY_FT4 *poly; // $t0
|
||||
struct SVECTOR direction; // stack address -64
|
||||
struct MATRIX temp_matrix; // stack address -56
|
||||
int z; // stack address -24
|
||||
} // line 71, address 0x36bbc
|
||||
/*
|
||||
* Offset 0x36BD4
|
||||
* D:\driver2\game\C\DEBRIS.C (line 3029)
|
||||
* Stack frame base $sp, length 64
|
||||
*/
|
||||
void /*$ra*/ DisplayWater(struct SMOKE *smoke /*$a0*/)
|
||||
{ // line 1, address 0x36bd4
|
||||
struct POLY_FT4 *poly; // $t1
|
||||
struct VECTOR v; // stack address -64
|
||||
struct SVECTOR vert[4]; // stack address -48
|
||||
int length; // $t1
|
||||
int z; // $v0
|
||||
int z1; // stack address -16
|
||||
int z2; // stack address -12
|
||||
int z3; // stack address -8
|
||||
int z4; // stack address -4
|
||||
} // line 58, address 0x36e80
|
||||
/*
|
||||
* Offset 0x36E80
|
||||
* D:\driver2\game\C\DEBRIS.C (line 3102)
|
||||
* Stack frame base $sp, length 40
|
||||
*/
|
||||
void /*$ra*/ DisplaySpark(struct SMOKE *spark /*$t1*/)
|
||||
{ // line 1, address 0x36e80
|
||||
int z; // stack address -8
|
||||
struct SVECTOR v[3]; // stack address -40
|
||||
struct SVECTOR TrailPos; // stack address -16
|
||||
struct POLY_G3 *poly; // $t0
|
||||
{ // line 33, address 0x36f98
|
||||
unsigned char *col; // $a0
|
||||
} // line 48, address 0x37048
|
||||
} // line 68, address 0x371b8
|
||||
/*
|
||||
* Offset 0x371C0
|
||||
* D:\driver2\game\C\DEBRIS.C (line 3182)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ GetSmokeDrift(struct VECTOR *Wind /*$t2*/)
|
||||
{ // line 1, address 0x371c0
|
||||
static int SinTabIndex1; // address 0x158
|
||||
static int SinTabIndex2; // address 0x15c
|
||||
static int SinTabIndex3; // address 0x160
|
||||
static int WindMagnitude; // address 0x164
|
||||
static int SinX; // address 0x0
|
||||
static int CosX; // address 0x4
|
||||
} // line 33, address 0x372b8
|
||||
/*
|
||||
* Offset 0x372B8
|
||||
* D:\driver2\game\C\DEBRIS.C (line 3227)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ Setup_Debris(struct VECTOR *ipos /*$fp*/, struct VECTOR *ispeed /*$s6*/, int num_debris /*$s7*/, int type /*$s5*/)
|
||||
{ // line 1, address 0x372b8
|
||||
struct DEBRIS *mydebris; // $s1
|
||||
int num; // $v1
|
||||
int loop; // $s4
|
||||
int vx; // $s2
|
||||
int vy; // $s3
|
||||
int vz; // $a2
|
||||
int seed; // $s0
|
||||
int col; // $a3
|
||||
{ // line 18, address 0x3735c
|
||||
} // line 32, address 0x3741c
|
||||
} // line 58, address 0x374ac
|
||||
/*
|
||||
* Offset 0x374DC
|
||||
* D:\driver2\game\C\DEBRIS.C (line 3296)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ Setup_Smoke(struct VECTOR *ipos /*$s1*/, int start_w /*$s3*/, int end_w /*$s4*/, int SmokeType /*$s7*/, int WheelSpeed /*stack 16*/, struct VECTOR *Drift /*stack 20*/, int Exhaust /*stack 24*/)
|
||||
{ // line 1, address 0x374dc
|
||||
struct SMOKE *mysmoke; // $s0
|
||||
int num; // $v1
|
||||
{ // line 39, address 0x375fc
|
||||
} // line 39, address 0x375fc
|
||||
{ // line 76, address 0x37708
|
||||
} // line 76, address 0x37708
|
||||
{ // line 86, address 0x37754
|
||||
} // line 91, address 0x37790
|
||||
{ // line 127, address 0x37874
|
||||
} // line 138, address 0x378ec
|
||||
} // line 167, address 0x37988
|
||||
/*
|
||||
* Offset 0x379B8
|
||||
* D:\driver2\game\C\DEBRIS.C (line 3475)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ Setup_Sparks(struct VECTOR *ipos /*$fp*/, struct VECTOR *ispeed /*$s7*/, int num_sparks /*stack 8*/, char SparkType /*$s5*/)
|
||||
{ // line 1, address 0x379b8
|
||||
struct SMOKE *mysmoke; // $s2
|
||||
int num; // $s0
|
||||
int loop; // $s4
|
||||
int vx; // $s1
|
||||
int vy; // $s0
|
||||
int vz; // $v1
|
||||
int randtemp; // $v0
|
||||
{ // line 12, address 0x37a08
|
||||
} // line 74, address 0x37b38
|
||||
} // line 75, address 0x37b4c
|
||||
/*
|
||||
* Offset 0x37B7C
|
||||
* D:\driver2\game\C\DEBRIS.C (line 3564)
|
||||
* Stack frame base $sp, length 56
|
||||
*/
|
||||
void /*$ra*/ DisplayDebris(struct DEBRIS *debris /*$t2*/, char type /*$t3*/)
|
||||
{ // line 1, address 0x37b7c
|
||||
int pos; // $a1
|
||||
int z; // stack address -8
|
||||
struct SVECTOR v[4]; // stack address -56
|
||||
struct TRI_POINT *tv; // $t1
|
||||
struct VECTOR debrisvec; // stack address -24
|
||||
struct POLY_FT3 *poly; // $t0
|
||||
struct POLY_GT4 *poly1; // $t0
|
||||
{ // line 43, address 0x37dfc
|
||||
unsigned long cbgr; // $v1
|
||||
} // line 54, address 0x37e78
|
||||
} // line 84, address 0x38068
|
||||
/*
|
||||
* Offset 0x38070
|
||||
* D:\driver2\game\C\DEBRIS.C (line 3659)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ HandleDebris()
|
||||
{ // line 2, address 0x38070
|
||||
int count; // $s0
|
||||
int i; // $s3
|
||||
struct DEBRIS *lpDebris; // $s1
|
||||
struct SMOKE *smokeptr; // $s0
|
||||
struct VECTOR dummy; // stack address -80
|
||||
struct LEAF *lpLeaf; // $s1
|
||||
int Height; // $v0
|
||||
int SinX; // $s2
|
||||
int CosX; // $v1
|
||||
struct VECTOR Drift; // stack address -64
|
||||
{ // line 193, address 0x38484
|
||||
int offshore; // $s1
|
||||
struct ROUTE_DATA routeData; // stack address -48
|
||||
} // line 205, address 0x3851c
|
||||
{ // line 294, address 0x38758
|
||||
static int weather_level; // address 0x168
|
||||
} // line 307, address 0x387b8
|
||||
} // line 308, address 0x387e4
|
||||
/*
|
||||
* Offset 0x387E4
|
||||
* D:\driver2\game\C\DEBRIS.C (line 3983)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DisplaySmoke(struct SMOKE *smoke /*$s0*/)
|
||||
{ // line 1, address 0x387e4
|
||||
struct POLY_FT4 *poly; // $t0
|
||||
struct VECTOR v; // stack address -80
|
||||
struct SVECTOR smokemesh[4]; // stack address -64
|
||||
int x; // $s2
|
||||
int negx; // $s1
|
||||
int z; // stack address -32
|
||||
int smoke_z_offset; // $s3
|
||||
int tmode; // $a3
|
||||
int length; // $v0
|
||||
int centrex; // $a1
|
||||
int centrey; // $v1
|
||||
{ // line 58, address 0x389d8
|
||||
char red; // $a0
|
||||
char green; // $a1
|
||||
char blue; // $v1
|
||||
} // line 63, address 0x38a04
|
||||
} // line 132, address 0x38d00
|
||||
/*
|
||||
* Offset 0x38D1C
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4118)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ add_haze(int top_col /*$a0*/, int bot_col /*$a1*/, short ot_pos /*$a2*/)
|
||||
{ // line 1, address 0x38d1c
|
||||
struct TILE *polys; // $a1
|
||||
} // line 23, address 0x38e68
|
||||
/*
|
||||
* Offset 0x38E70
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4208)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawRainDrops()
|
||||
{ // line 2, address 0x38e70
|
||||
struct RAIN_TYPE *RainPtr; // $s0
|
||||
struct POLY_GT3 *poly; // $a3
|
||||
int Count; // $s2
|
||||
int z; // stack address -48
|
||||
struct SVECTOR v[3]; // stack address -88
|
||||
struct VECTOR drift; // stack address -64
|
||||
int tpage; // $fp
|
||||
int clut; // $s7
|
||||
int col; // $s1
|
||||
{ // line 51, address 0x3900c
|
||||
int notfirst; // $a1
|
||||
} // line 88, address 0x391c0
|
||||
} // line 92, address 0x39204
|
||||
/*
|
||||
* Offset 0x39204
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4413)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ AddRainDrops()
|
||||
{ // line 2, address 0x39204
|
||||
struct SVECTOR v; // stack address -48
|
||||
struct RAIN_TYPE *RainPtr; // $a2
|
||||
int RainIndex; // $s0
|
||||
int RainNo; // $s1
|
||||
int first; // $s3
|
||||
static unsigned long rand; // address 0x8
|
||||
{ // line 40, address 0x393f0
|
||||
int depth; // $v0
|
||||
} // line 43, address 0x39418
|
||||
{ // line 53, address 0x3944c
|
||||
struct ROUTE_DATA routeData; // stack address -40
|
||||
} // line 61, address 0x3949c
|
||||
} // line 64, address 0x394ac
|
||||
/*
|
||||
* Offset 0x394D0
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4489)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ DisplaySplashes()
|
||||
{ // line 2, address 0x394d0
|
||||
int SplashNo; // $s4
|
||||
int SplashFrac; // $v0
|
||||
struct VECTOR CamGnd; // stack address -96
|
||||
struct VECTOR Gnd1; // stack address -80
|
||||
struct VECTOR Gnd2; // stack address -64
|
||||
struct VECTOR Position; // stack address -48
|
||||
struct CVECTOR col; // stack address -32
|
||||
static unsigned long rand; // address 0x170
|
||||
int d1; // $a0
|
||||
int d2; // $a2
|
||||
} // line 58, address 0x39808
|
||||
/*
|
||||
* Offset 0x39828
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4550)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ DisplayLightReflections(struct VECTOR *v1 /*$s1*/, struct CVECTOR *col /*$s3*/, short length /*$a2*/, struct TEXTURE_DETAILS *texture /*$s2*/)
|
||||
{ // line 1, address 0x39828
|
||||
struct SVECTOR vert[4]; // stack address -80
|
||||
struct POLY_FT4 *poly; // $a1
|
||||
struct CVECTOR thiscol; // stack address -48
|
||||
int z; // stack address -40
|
||||
int tpage; // $s5
|
||||
int clut; // $s4
|
||||
} // line 52, address 0x39a98
|
||||
/*
|
||||
* Offset 0x39ABC
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1686)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ AllocateDebris()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x39AF8
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1297)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ AllocateLeaf()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x39B34
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1719)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ AllocateSmoke()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x39B70
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2200)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ find_lamp_streak(int LampId /*$a0*/)
|
||||
{ // line 1, address 0x39b70
|
||||
int count; // $a1
|
||||
} // line 17, address 0x39be0
|
||||
/*
|
||||
* Offset 0x39BE0
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4607)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DoLightning()
|
||||
{ // line 2, address 0x39be0
|
||||
} // line 24, address 0x39cc0
|
||||
/*
|
||||
* Offset 0x39CD0
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2447)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ FindCarLightFade(struct MATRIX *carToCamera /*$a0*/)
|
||||
{ // line 2, address 0x39cd0
|
||||
int zz; // $v0
|
||||
} // line 5, address 0x39cf8
|
||||
/*
|
||||
* Offset 0x39CF8
|
||||
* D:\driver2\game\C\DEBRIS.C (line 2428)
|
||||
* Stack frame base $sp, length 8
|
||||
*/
|
||||
void /*$ra*/ InitFXPos(struct VECTOR *vec /*$a0*/, struct SVECTOR *svec /*$a1*/, struct _CAR_DATA *cp /*$a2*/)
|
||||
{ // line 1, address 0x39cf8
|
||||
struct SVECTOR svectmp; // stack address -8
|
||||
} // line 9, address 0x39dd0
|
||||
/*
|
||||
* Offset 0x39DD0
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1704)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ReleaseDebris(short num /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x39DF4
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1313)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ReleaseLeaf(short num /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x39E18
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4190)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ReleaseRainDrop(int RainIndex /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x39E3C
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1737)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ReleaseSmoke(short num /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x39E60
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4152)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetupRain()
|
||||
{ // line 2, address 0x39e60
|
||||
} // line 11, address 0x39ebc
|
||||
/*
|
||||
* Offset 0x39EBC
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1437)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ SwirlLeaves(struct _CAR_DATA *cp /*$a0*/)
|
||||
{ // line 1, address 0x39ebc
|
||||
int count; // $s2
|
||||
struct LEAF *lpLeaf; // $s0
|
||||
int XDiff; // $v0
|
||||
int ZDiff; // $a1
|
||||
struct VECTOR *CarPos; // $s1
|
||||
int WheelSpeed; // $a1
|
||||
{ // line 38, address 0x39fc8
|
||||
} // line 40, address 0x39fec
|
||||
} // line 44, address 0x39ff8
|
||||
/*
|
||||
* Offset 0x3A010
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4725)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetDebrisColour(struct _CAR_DATA *cp /*$a0*/)
|
||||
{ // line 1, address 0x3a010
|
||||
int car_model; // $v1
|
||||
int palette; // $a0
|
||||
} // line 17, address 0x3a068
|
||||
/*
|
||||
* Offset 0x3A068
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4651)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DoWeather(int weather /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x3A124
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4635)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitThunder()
|
||||
{ // line 1, address 0x3a124
|
||||
} // line 1, address 0x3a188
|
||||
/*
|
||||
* Offset 0x3A188
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4636)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ RequestThunder()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x3A1AC
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4638)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DoThunder()
|
||||
{ // line 2, address 0x3a1ac
|
||||
} // line 9, address 0x3a28c
|
||||
/*
|
||||
* Offset 0x3A29C
|
||||
* D:\driver2\game\C\DEBRIS.C (line 1886)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ MoveSmashable_object()
|
||||
{ // line 2, address 0x3a29c
|
||||
int count; // $a3
|
||||
struct DAMAGED_OBJECT *dam; // $a1
|
||||
{ // line 10, address 0x3a2c0
|
||||
int groundlevel; // $v0
|
||||
} // line 25, address 0x3a328
|
||||
} // line 28, address 0x3a33c
|
||||
/*
|
||||
* Offset 0x3A33C
|
||||
* D:\driver2\game\C\DEBRIS.C (line 4173)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ AllocateRainDrop()
|
||||
{
|
||||
}
|
146
src/C/denting.c
Normal file
146
src/C/denting.c
Normal file
@ -0,0 +1,146 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
char* DentingFiles[] =
|
||||
{
|
||||
"LEVELS\\CHICAGO.DEN",
|
||||
"LEVELS\\HAVANA.DEN",
|
||||
"LEVELS\\VEGAS.DEN",
|
||||
"LEVELS\\RIO.DEN",
|
||||
};
|
||||
|
||||
/*
|
||||
* Offset 0x3A378
|
||||
* D:\driver2\game\C\DENTING.C (line 288)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4
|
||||
*/
|
||||
void /*$ra*/ DentCar(struct _CAR_DATA *cp /*$t7*/)
|
||||
{ // line 1, address 0x3a378
|
||||
struct SVECTOR *VertPtr; // $t0
|
||||
int MaxDamage; // $s0
|
||||
unsigned char VertIndex; // $v0
|
||||
unsigned char PolyIndex; // $v0
|
||||
struct DENTUVS *dentptr; // $t1
|
||||
unsigned char *DamPtr; // $a2
|
||||
int model; // $t5
|
||||
int Poly; // $a1
|
||||
int Damage; // $v1
|
||||
int Zone; // $a3
|
||||
int VertNo; // $a2
|
||||
short *tempDamage; // $t1
|
||||
struct SVECTOR *DamVertPtr; // $a3
|
||||
struct SVECTOR *CleanVertPtr; // $a1
|
||||
struct MODEL *pCleanModel; // $t3
|
||||
{ // line 133, address 0x3a6f8
|
||||
} // line 135, address 0x3a6f8
|
||||
} // line 140, address 0x3a74c
|
||||
/*
|
||||
* Offset 0x3A74C
|
||||
* D:\driver2\game\C\DENTING.C (line 458)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ CreateDentableCar(struct _CAR_DATA *cp /*$t2*/)
|
||||
{ // line 1, address 0x3a74c
|
||||
struct DENTUVS *dentptr; // $a3
|
||||
int Zone; // $v1
|
||||
int count; // $a2
|
||||
int model; // $t3
|
||||
{ // line 20, address 0x3a778
|
||||
struct SVECTOR *dst; // $a2
|
||||
struct SVECTOR *src; // $a3
|
||||
int count; // $t0
|
||||
{ // line 26, address 0x3a7b0
|
||||
int x; // $v0
|
||||
int y; // $v1
|
||||
int z; // $a0
|
||||
} // line 26, address 0x3a7b0
|
||||
} // line 35, address 0x3a7d8
|
||||
} // line 76, address 0x3a8dc
|
||||
/*
|
||||
* Offset 0x3A8DC
|
||||
* D:\driver2\game\C\DENTING.C (line 549)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitHubcap()
|
||||
{ // line 3, address 0x3a8dc
|
||||
} // line 24, address 0x3a960
|
||||
/*
|
||||
* Offset 0x3A960
|
||||
* D:\driver2\game\C\DENTING.C (line 600)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ LoseHubcap(int Hubcap /*$s3*/, int Velocity /*$a1*/)
|
||||
{ // line 1, address 0x3a960
|
||||
struct _CAR_DATA *car_data_pt; // $s1
|
||||
struct SVECTOR InitialLocalAngle; // stack address -64
|
||||
{ // line 71, address 0x3aaec
|
||||
struct VECTOR R; // stack address -56
|
||||
struct VECTOR VW; // stack address -40
|
||||
long AY; // $t0
|
||||
} // line 81, address 0x3ab48
|
||||
} // line 94, address 0x3ab94
|
||||
/*
|
||||
* Offset 0x3ABB4
|
||||
* D:\driver2\game\C\DENTING.C (line 706)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ MoveHubcap()
|
||||
{ // line 2, address 0x3abb4
|
||||
struct _CAR_DATA *car_data_pt; // $a1
|
||||
struct VECTOR Position; // stack address -80
|
||||
struct MATRIX Orientation; // stack address -64
|
||||
struct CVECTOR col; // stack address -32
|
||||
int VelocityMagnitude; // $s0
|
||||
int CurrentMapHeight; // $a0
|
||||
int savecombo; // $s0
|
||||
{ // line 25, address 0x3ac60
|
||||
} // line 28, address 0x3ac80
|
||||
{ // line 32, address 0x3ac90
|
||||
} // line 35, address 0x3acc0
|
||||
{ // line 56, address 0x3ad0c
|
||||
} // line 74, address 0x3ad8c
|
||||
} // line 99, address 0x3aeac
|
||||
/*
|
||||
* Offset 0x3AEC8
|
||||
* D:\driver2\game\C\DENTING.C (line 838)
|
||||
* Stack frame base $sp, length 16
|
||||
* Saved registers at address -4: s0 s1 s2 s3
|
||||
*/
|
||||
void /*$ra*/ ProcessDentLump(char *lump_ptr /*$t2*/, int lump_size /*$a1*/)
|
||||
{ // line 1, address 0x3aec8
|
||||
int i; // $a3
|
||||
int model; // $a0
|
||||
int address; // $a0
|
||||
} // line 30, address 0x3b228
|
||||
/*
|
||||
* Offset 0x3B228
|
||||
* D:\driver2\game\C\DENTING.C (line 267)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitialiseDenting()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x3B258
|
||||
* D:\driver2\game\C\DENTING.C (line 815)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ LoadDenting(int level /*$a0*/)
|
||||
{ // line 2, address 0x3b258
|
||||
} // line 15, address 0x3b2a8
|
||||
/*
|
||||
* Offset 0x3B2A8
|
||||
* D:\driver2\game\C\DENTING.C (line 877)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetupSpecDenting(char *loadbuffer /*$a0*/)
|
||||
{ // line 1, address 0x3b2a8
|
||||
char *from; // $a0
|
||||
char *to; // $v1
|
||||
char *limit; // $a1
|
||||
} // line 34, address 0x3b34c
|
404
src/C/director.c
Normal file
404
src/C/director.c
Normal file
@ -0,0 +1,404 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
REPLAY_ICON replay_icons[23] =
|
||||
{
|
||||
{ 20, 26, &dir_pause, "Pause", 20, 48 },
|
||||
{ 20, 26, &playpause, "Resume", 20, 48 },
|
||||
{ 44, 26, &autocam, "Auto director", 44, 48 },
|
||||
{ 68, 26, &playcam, "Play camera", 68, 48 },
|
||||
{ 92, 26, &frameadv, "Single frame", 92, 48 },
|
||||
{ 116, 26, &restart, "Rewind", 116, 48 },
|
||||
{ 140, 26, &addcam, "Add camera", 140, 48 },
|
||||
{ 164, 26, &editcam, "Edit camera", 164, 48 },
|
||||
{ 188, 26, &save2card, "Save replay", 188, 48 },
|
||||
{ 212, 26, &ok, "OK", 212, 48 },
|
||||
{ 140, 50, &incar, "Inside car", 164, 48 },
|
||||
{ 140, 74, &chasecar, "Chase camera", 164, 72 },
|
||||
{ 140, 98, &fixedcam, "Fixed camera", 164, 96 },
|
||||
{ 140, 122, &ok, "Accept", 164, 120 },
|
||||
{ 140, 122, &clock, "Move camera start", 164, 120 },
|
||||
{ 140, 146, &delcam, "Delete camera", 164, 144 },
|
||||
{ 140, 170, &ok, "Accept", 164, 168 },
|
||||
{ 164, 50, &choosecar, "Choose target vehicle", 164, 72 },
|
||||
{ 164, 74, &movecampos, "Move camera position", 164, 96 },
|
||||
{ 164, 98, &movecampos, "Move camera position", 164, 120 },
|
||||
{ 188, 98, &lookcar, "Look at target", 188, 120 },
|
||||
{ 212, 98, &movecam, "Move camera", 212, 120 },
|
||||
{ 236, 98, &lenschan, "Lens zoom", 236, 120 }
|
||||
};
|
||||
|
||||
char menu0[] = { 0, 0xFF };
|
||||
|
||||
char menu1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xFF };
|
||||
|
||||
char menu2[] = { 0xA, 0xB, 0xC, 0xD, 0xFF };
|
||||
|
||||
char menu3[] = { 0x11, 0xFF };
|
||||
|
||||
char menu4[] = { 0x12, 0xFF };
|
||||
|
||||
char menu5[] = { 0x13, 0x14, 0x15, 0x16, 0xFF };
|
||||
|
||||
char menu6[] = { 0xA, 0xB, 0xC, 0xE, 0xF, 0x10, 0xFF };
|
||||
|
||||
/*
|
||||
* Offset 0x3B34C
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 513)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ EditCamera(int CameraCnt /*$a0*/)
|
||||
{ // line 2, address 0x3b34c
|
||||
int count; // $t0
|
||||
{ // line 30, address 0x3b47c
|
||||
int prev; // $a2
|
||||
int next; // $v1
|
||||
} // line 57, address 0x3b584
|
||||
} // line 59, address 0x3b5b0
|
||||
/*
|
||||
* Offset 0x3B5B0
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 574)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ RecordCamera(int CameraCnt /*$s0*/)
|
||||
{ // line 1, address 0x3b5b0
|
||||
struct PLAYBACKCAMERA *TempChange; // $a1
|
||||
} // line 58, address 0x3b7fc
|
||||
/*
|
||||
* Offset 0x3B7FC
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 658)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ CheckCameraChange(int CameraCnt /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x3B930
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 731)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ IsMovingCamera(struct PLAYBACKCAMERA *lastcam /*$t3*/, struct PLAYBACKCAMERA *nextcam /*$t0*/, int cameracnt /*$a2*/)
|
||||
{ // line 1, address 0x3b930
|
||||
struct PLAYBACKCAMERA cam; // stack address -56
|
||||
long xdist; // $t5
|
||||
long ydist; // $t6
|
||||
long zdist; // $t4
|
||||
long xangle; // $a3
|
||||
long yangle; // $t1
|
||||
long zangle; // $t2
|
||||
int s; // $a0
|
||||
int e; // $v1
|
||||
int f; // $t8
|
||||
int t; // $a2
|
||||
int nextcview; // $a0
|
||||
} // line 61, address 0x3bc10
|
||||
/*
|
||||
* Offset 0x3BC10
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 794)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 fp
|
||||
*/
|
||||
void /*$ra*/ CameraBar(int CameraCnt /*stack 0*/)
|
||||
{ // line 1, address 0x3bc10
|
||||
struct POLY_G4 *camera; // $a2
|
||||
struct LINE_F2 *bar; // $t2
|
||||
int x; // $a2
|
||||
int min_x; // $t1
|
||||
int max_x; // $t0
|
||||
int min_y; // $s3
|
||||
char red; // $s0
|
||||
char green; // $s4
|
||||
char blue; // $fp
|
||||
int bar_x; // $s1
|
||||
int first; // stack address -48
|
||||
int last; // $s7
|
||||
unsigned long idx; // $t9
|
||||
} // line 133, address 0x3c1ec
|
||||
/*
|
||||
* Offset 0x3C218
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 966)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ ShowIcons(char *menu /*$s3*/, int selected /*stack 4*/, int x_offset /*$s7*/)
|
||||
{ // line 1, address 0x3c218
|
||||
static int FlashCnt; // address 0x0
|
||||
struct REPLAY_ICON *IconPtr; // $s0
|
||||
struct SPRT *icon; // $a2
|
||||
int count; // $s6
|
||||
{ // line 61, address 0x3c3a8
|
||||
struct TEXTURE_DETAILS *Icon_texture; // $s1
|
||||
int min_x; // $v1
|
||||
int min_y; // $a0
|
||||
{ // line 69, address 0x3c3cc
|
||||
} // line 71, address 0x3c3ec
|
||||
{ // line 82, address 0x3c44c
|
||||
int ramp; // $a0
|
||||
} // line 93, address 0x3c4b0
|
||||
} // line 100, address 0x3c4d8
|
||||
} // line 130, address 0x3c624
|
||||
/*
|
||||
* Offset 0x3C624
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 1135)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ ShowReplayMenu()
|
||||
{ // line 2, address 0x3c624
|
||||
{ // line 4, address 0x3c64c
|
||||
} // line 8, address 0x3c670
|
||||
{ // line 12, address 0x3c688
|
||||
} // line 16, address 0x3c6a4
|
||||
{ // line 43, address 0x3c7b8
|
||||
int strobe; // $v0
|
||||
} // line 47, address 0x3c800
|
||||
} // line 49, address 0x3c810
|
||||
/*
|
||||
* Offset 0x3C810
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 1186)
|
||||
* Stack frame base $sp, length 120
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ ControlReplay()
|
||||
{ // line 2, address 0x3c810
|
||||
static int debounce; // address 0x60
|
||||
static int first_time; // address 0x64
|
||||
int move; // $s0
|
||||
{ // line 85, address 0x3ca68
|
||||
int speed; // $s2
|
||||
{ // line 95, address 0x3cad0
|
||||
} // line 99, address 0x3caf4
|
||||
{ // line 102, address 0x3cb0c
|
||||
int prev; // $v1
|
||||
} // line 105, address 0x3cb44
|
||||
{ // line 141, address 0x3cc9c
|
||||
struct ROUTE_DATA routeData; // stack address -96
|
||||
int road_height; // $s1
|
||||
} // line 152, address 0x3cd18
|
||||
{ // line 161, address 0x3cd24
|
||||
struct VECTOR old_camera; // stack address -88
|
||||
int x; // $s5
|
||||
int z; // $s4
|
||||
int d; // $s3
|
||||
int angle; // $s1
|
||||
char cameraCar; // $a0
|
||||
int dx; // $s1
|
||||
int dz; // $s0
|
||||
struct VECTOR basePos; // stack address -72
|
||||
struct VECTOR tmpPos; // stack address -56
|
||||
{ // line 186, address 0x3cda0
|
||||
struct _EVENT *event; // $a1
|
||||
} // line 190, address 0x3cdd0
|
||||
{ // line 224, address 0x3cecc
|
||||
int temp; // $v0
|
||||
} // line 228, address 0x3ced8
|
||||
{ // line 245, address 0x3cf90
|
||||
} // line 264, address 0x3cfdc
|
||||
{ // line 268, address 0x3cfdc
|
||||
struct ROUTE_DATA routeData; // stack address -40
|
||||
int road_height; // $s1
|
||||
} // line 289, address 0x3d0cc
|
||||
} // line 291, address 0x3d0f0
|
||||
} // line 320, address 0x3d230
|
||||
{ // line 374, address 0x3d574
|
||||
{ // line 496, address 0x3d870
|
||||
} // line 496, address 0x3d870
|
||||
{ // line 605, address 0x3dad4
|
||||
int prev1; // $a1
|
||||
} // line 615, address 0x3db14
|
||||
} // line 789, address 0x3de74
|
||||
} // line 802, address 0x3dea0
|
||||
/*
|
||||
* Offset 0x3DEC8
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 1990)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DoAutoDirect()
|
||||
{ // line 2, address 0x3dec8
|
||||
struct VECTOR pos; // stack address -40
|
||||
{ // line 8, address 0x3df64
|
||||
int new_view; // $v1
|
||||
{ // line 25, address 0x3dffc
|
||||
} // line 35, address 0x3e004
|
||||
{ // line 58, address 0x3e0c0
|
||||
int tmp; // $v0
|
||||
} // line 67, address 0x3e138
|
||||
{ // line 69, address 0x3e138
|
||||
int tmp; // $v0
|
||||
} // line 75, address 0x3e15c
|
||||
} // line 105, address 0x3e32c
|
||||
} // line 116, address 0x3e390
|
||||
/*
|
||||
* Offset 0x3E390
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 2108)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ SelectCameraCar(int current /*$t1*/)
|
||||
{ // line 1, address 0x3e390
|
||||
int count; // $a2
|
||||
{ // line 15, address 0x3e408
|
||||
struct _EVENT *event; // $a0
|
||||
struct _CAR_DATA *car; // $a3
|
||||
struct XZPAIR pos; // stack address -16
|
||||
{ // line 60, address 0x3e4ec
|
||||
int dist; // $v0
|
||||
int dx; // $a1
|
||||
int dz; // $a0
|
||||
} // line 72, address 0x3e574
|
||||
} // line 73, address 0x3e574
|
||||
} // line 76, address 0x3e5a4
|
||||
/*
|
||||
* Offset 0x3E5A4
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 2186)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ InvalidCamera(int car_num /*$a2*/)
|
||||
{ // line 1, address 0x3e5a4
|
||||
{ // line 7, address 0x3e5d0
|
||||
char invalidCamera; // $a3
|
||||
{ // line 14, address 0x3e638
|
||||
char numEventModels; // $a0
|
||||
struct _EVENT *event; // $v1
|
||||
struct XZPAIR pos; // stack address -24
|
||||
{ // line 22, address 0x3e690
|
||||
int dist; // $v0
|
||||
int dx; // $v1
|
||||
int dz; // $a0
|
||||
} // line 38, address 0x3e728
|
||||
} // line 39, address 0x3e728
|
||||
} // line 50, address 0x3e760
|
||||
} // line 74, address 0x3e804
|
||||
/*
|
||||
* Offset 0x3E804
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 445)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitDirectorVariables()
|
||||
{ // line 2, address 0x3e804
|
||||
int count; // $a0
|
||||
} // line 22, address 0x3e870
|
||||
/*
|
||||
* Offset 0x3E870
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 476)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DeleteCurrentCamera(int CameraCnt /*$a0*/)
|
||||
{ // line 2, address 0x3e870
|
||||
int prev; // $a1
|
||||
int next; // $a0
|
||||
} // line 15, address 0x3e8f4
|
||||
/*
|
||||
* Offset 0x3E904
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 493)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ setCamera(struct PLAYBACKCAMERA *Change /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x3E9B4
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 634)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ FindNextChange(int CameraCnt /*$a0*/)
|
||||
{ // line 1, address 0x3e9b4
|
||||
int count; // $a3
|
||||
int nextframe; // $a2
|
||||
int found; // $t0
|
||||
struct PLAYBACKCAMERA *RestoreChange; // $t1
|
||||
} // line 21, address 0x3ea20
|
||||
/*
|
||||
* Offset 0x3EA20
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 929)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
struct PLAYBACKCAMERA * /*$ra*/ FindFreeCamera()
|
||||
{ // line 2, address 0x3ea20
|
||||
int count; // $a1
|
||||
} // line 12, address 0x3ea60
|
||||
/*
|
||||
* Offset 0x3EA60
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 943)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ deleteCamera(int count /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x3EAA8
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 951)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DeleteAllCameras()
|
||||
{ // line 2, address 0x3eaa8
|
||||
struct PLAYBACKCAMERA nextcamera; // stack address -48
|
||||
int count; // $s0
|
||||
} // line 13, address 0x3eb0c
|
||||
/*
|
||||
* Offset 0x3EB0C
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 1098)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ ShowReplayOptions()
|
||||
{ // line 2, address 0x3eb0c
|
||||
static int toggle_icons; // address 0x5c
|
||||
} // line 35, address 0x3eb48
|
||||
/*
|
||||
* Offset 0x3EB58
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 2263)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ NoMoreCamerasErrorMessage()
|
||||
{ // line 2, address 0x3eb58
|
||||
{ // line 4, address 0x3eb70
|
||||
int strobe; // $v0
|
||||
} // line 9, address 0x3ebc4
|
||||
} // line 12, address 0x3ebd4
|
||||
/*
|
||||
* Offset 0x3EBD4
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 2279)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ FirstCamera()
|
||||
{ // line 2, address 0x3ebd4
|
||||
} // line 8, address 0x3ec04
|
||||
/*
|
||||
* Offset 0x3EC04
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 2289)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ dist(struct VECTOR *pos1 /*$a0*/, struct VECTOR *pos2 /*$a1*/)
|
||||
{ // line 1, address 0x3ec04
|
||||
int dx; // $v0
|
||||
int dz; // $a0
|
||||
} // line 7, address 0x3ec74
|
||||
/*
|
||||
* Offset 0x3EC74
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 710)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetPlaybackCamera(struct PLAYBACKCAMERA *camera /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x3ED2C
|
||||
* D:\driver2\game\C\DIRECTOR.C (line 2303)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetCameraReturnedFromCutscene(int CameraCnt /*$s0*/)
|
||||
{ // line 1, address 0x3ed2c
|
||||
struct PLAYBACKCAMERA *next; // $a1
|
||||
int count; // $a2
|
||||
} // line 28, address 0x3ede4
|
155
src/C/dr2roads.c
Normal file
155
src/C/dr2roads.c
Normal file
@ -0,0 +1,155 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
sdPlane sea = { 9, 0, 16384, 0, 2048 };
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x12F5C
|
||||
* D:\driver2\game\C\DR2ROADS.C (line 164)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
int /*$ra*/ FindSurfaceD2(struct VECTOR *pos /*$s0*/, struct VECTOR *normal /*$s1*/, struct VECTOR *out /*$s3*/, struct _sdPlane **plane /*$s2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1313C
|
||||
* D:\driver2\game\C\DR2ROADS.C (line 205)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ sdHeightOnPlane(struct VECTOR *pos /*$t0*/, struct _sdPlane *plane /*$a1*/)
|
||||
{ // line 1, address 0x1313c
|
||||
{ // line 11, address 0x1319c
|
||||
int angle; // $v0
|
||||
int i; // $v0
|
||||
struct DRIVER2_CURVE *curve; // $s0
|
||||
} // line 23, address 0x13204
|
||||
{ // line 26, address 0x13204
|
||||
int val; // $a3
|
||||
{ // line 35, address 0x13224
|
||||
int lx; // $v0
|
||||
int ly; // $v1
|
||||
} // line 39, address 0x13280
|
||||
} // line 42, address 0x13294
|
||||
} // line 43, address 0x13294
|
||||
/*
|
||||
* Offset 0x13294
|
||||
* D:\driver2\game\C\DR2ROADS.C (line 295)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
int /*$ra*/ RoadInCell(struct VECTOR *pos /*$s5*/)
|
||||
{ // line 1, address 0x13294
|
||||
char *buffer; // $s2
|
||||
struct XYPAIR cellPos; // stack address -48
|
||||
struct XYPAIR cell; // stack address -40
|
||||
short *surface; // $a0
|
||||
struct _sdPlane *plane; // $s0
|
||||
{ // line 36, address 0x13380
|
||||
int moreLevels; // $s3
|
||||
short *check; // $s1
|
||||
struct _sdPlane *base; // $s4
|
||||
} // line 77, address 0x1344c
|
||||
} // line 94, address 0x134d4
|
||||
/*
|
||||
* Offset 0x134D4
|
||||
* D:\driver2\game\C\DR2ROADS.C (line 400)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
struct _sdPlane * /*$ra*/ sdGetCell(struct VECTOR *pos /*$s3*/)
|
||||
{ // line 1, address 0x134d4
|
||||
char *buffer; // $s1
|
||||
short *surface; // $s0
|
||||
int nextLevel; // $s2
|
||||
struct _sdPlane *plane; // $a1
|
||||
struct XYPAIR cell; // stack address -40
|
||||
struct XYPAIR cellPos; // stack address -32
|
||||
{ // line 41, address 0x135c4
|
||||
int y; // $a0
|
||||
} // line 56, address 0x13620
|
||||
{ // line 63, address 0x13634
|
||||
short *BSPsurface; // $a0
|
||||
} // line 81, address 0x1369c
|
||||
} // line 102, address 0x13728
|
||||
/*
|
||||
* Offset 0x13728
|
||||
* D:\driver2\game\C\DR2ROADS.C (line 64)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ProcessStraightsDriver2Lump(char *lump_file /*$s0*/, int lump_size /*$a1*/)
|
||||
{ // line 1, address 0x13728
|
||||
} // line 5, address 0x1375c
|
||||
/*
|
||||
* Offset 0x1375C
|
||||
* D:\driver2\game\C\DR2ROADS.C (line 80)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ProcessCurvesDriver2Lump(char *lump_file /*$s0*/, int lump_size /*$a1*/)
|
||||
{ // line 1, address 0x1375c
|
||||
} // line 5, address 0x13790
|
||||
/*
|
||||
* Offset 0x13790
|
||||
* D:\driver2\game\C\DR2ROADS.C (line 94)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ ProcessJunctionsDriver2Lump(char *lump_file /*$s1*/, int lump_size /*$a1*/, int fix /*$s0*/)
|
||||
{ // line 1, address 0x13790
|
||||
{ // line 8, address 0x137c4
|
||||
int loop; // $v1
|
||||
struct OLD_DRIVER2_JUNCTION *old; // $a1
|
||||
struct DRIVER2_JUNCTION *p; // $a0
|
||||
{ // line 13, address 0x137e0
|
||||
int i; // $a1
|
||||
} // line 19, address 0x1380c
|
||||
} // line 20, address 0x13820
|
||||
} // line 21, address 0x13834
|
||||
/*
|
||||
* Offset 0x13834
|
||||
* D:\driver2\game\C\DR2ROADS.C (line 146)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ MapHeight(struct VECTOR *pos /*$s0*/)
|
||||
{ // line 1, address 0x13834
|
||||
int height; // $v0
|
||||
struct _sdPlane *plane; // $v0
|
||||
} // line 16, address 0x13874
|
||||
/*
|
||||
* Offset 0x13874
|
||||
* D:\driver2\game\C\DR2ROADS.C (line 250)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ GetSurfaceIndex(struct VECTOR *pos /*$a0*/)
|
||||
{ // line 2, address 0x13874
|
||||
struct _sdPlane *plane; // $v0
|
||||
} // line 10, address 0x138b0
|
||||
/*
|
||||
* Offset 0x138B0
|
||||
* D:\driver2\game\C\DR2ROADS.C (line 505)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
short * /*$ra*/ sdGetBSP(struct _sdNode *node /*$a3*/, struct XYPAIR *pos /*$a1*/)
|
||||
{ // line 1, address 0x138b0
|
||||
{ // line 4, address 0x138d8
|
||||
int dot; // $a0
|
||||
} // line 17, address 0x1393c
|
||||
} // line 19, address 0x13958
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x13958
|
||||
* D:\driver2\game\C\DR2ROADS.C (line 266)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
struct _sdPlane * /*$ra*/ FindRoadInBSP(struct _sdNode *node /*$s0*/, struct _sdPlane *base /*$s1*/)
|
||||
{ // line 2, address 0x13970
|
||||
struct _sdPlane *plane; // $v0
|
||||
} // line 27, address 0x139e8
|
390
src/C/draw.c
Normal file
390
src/C/draw.c
Normal file
@ -0,0 +1,390 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
MATRIX aspect =
|
||||
{ { { 6553, 0, 0 }, { 0, 4096, 0 }, { 0, 0, 4096 } }, { 0, 0, 0 } };
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x3EDE4
|
||||
* D:\driver2\game\C\DRAW.C (line 651)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ addSubdivSpriteShadow(struct POLYFT4LIT *src /*$t3*/, struct SVECTOR *verts /*$t2*/, int z /*$a2*/)
|
||||
{ // line 1, address 0x3ede4
|
||||
unsigned long word0; // $a0
|
||||
unsigned long vidx; // $t1
|
||||
struct _pct *pc; // $t0
|
||||
int w; // $s0
|
||||
} // line 19, address 0x3efcc
|
||||
/*
|
||||
* Offset 0x3EFCC
|
||||
* D:\driver2\game\C\DRAW.C (line 675)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawSprites(int numFound /*$a2*/)
|
||||
{ // line 1, address 0x3efcc
|
||||
struct XZPAIR near; // stack address -80
|
||||
struct PACKED_CELL_OBJECT **list; // stack address -64
|
||||
unsigned long spriteColour; // stack address -60
|
||||
int numShadows; // stack address -56
|
||||
{ // line 1, address 0x3efcc
|
||||
struct SVECTOR result; // stack address -72
|
||||
unsigned char lightLevel; // $a1
|
||||
} // line 41, address 0x3f164
|
||||
{ // line 41, address 0x3f164
|
||||
int i; // $t0
|
||||
} // line 54, address 0x3f1dc
|
||||
{ // line 68, address 0x3f258
|
||||
struct PACKED_CELL_OBJECT *ppco; // $fp
|
||||
struct MODEL *model; // $s4
|
||||
int z; // stack address -52
|
||||
int yang; // $a0
|
||||
{ // line 95, address 0x3f310
|
||||
} // line 95, address 0x3f310
|
||||
{ // line 101, address 0x3f358
|
||||
struct POLYFT4LIT *src; // $s0
|
||||
struct SVECTOR *verts; // $s3
|
||||
int i; // $s1
|
||||
{ // line 106, address 0x3f3a0
|
||||
unsigned long vidx; // $a3
|
||||
} // line 107, address 0x3f3a0
|
||||
} // line 119, address 0x3f504
|
||||
} // line 132, address 0x3f604
|
||||
} // line 134, address 0x3f658
|
||||
/*
|
||||
* Offset 0x3F658
|
||||
* D:\driver2\game\C\DRAW.C (line 813)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
struct PACKED_CELL_OBJECT * /*$ra*/ GetNextPackedCop(struct CELL_ITERATOR *pci /*$a0*/)
|
||||
{ // line 1, address 0x3f658
|
||||
struct PACKED_CELL_OBJECT *ppco; // $a3
|
||||
unsigned short num; // $a1
|
||||
} // line 40, address 0x3f718
|
||||
/*
|
||||
* Offset 0x3F718
|
||||
* D:\driver2\game\C\DRAW.C (line 883)
|
||||
* Stack frame base $sp, length 200
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawMapPSX(int *comp_val /*$t1*/)
|
||||
{ // line 1, address 0x3f718
|
||||
struct CELL_ITERATOR ci; // stack address -184
|
||||
struct PACKED_CELL_OBJECT *ppco; // $s0
|
||||
int i; // $s1
|
||||
int dir; // $s7
|
||||
int cellxpos; // $a0
|
||||
int cellzpos; // $a1
|
||||
int hloop; // $s4
|
||||
int vloop; // $s5
|
||||
int camx; // stack address -112
|
||||
int camz; // stack address -108
|
||||
char *PVS_ptr; // stack address -104
|
||||
int tiles_found; // stack address -100
|
||||
int other_models_found; // stack address -96
|
||||
int anim_objs; // $s6
|
||||
struct MATRIX mRotStore; // stack address -160
|
||||
int rightcos; // stack address -92
|
||||
int rightsin; // stack address -88
|
||||
int leftcos; // stack address -84
|
||||
int leftsin; // stack address -80
|
||||
int backcos; // stack address -76
|
||||
int backsin; // stack address -72
|
||||
int rightPlane; // stack address -68
|
||||
int leftPlane; // stack address -64
|
||||
int backPlane; // $fp
|
||||
unsigned int farClipLimit; // stack address -60
|
||||
{ // line 84, address 0x3f9cc
|
||||
struct MODEL *model; // $s2
|
||||
{ // line 92, address 0x3fa1c
|
||||
int model_shape_flags; // $s1
|
||||
{ // line 103, address 0x3fa78
|
||||
struct CELL_OBJECT *cop; // $a2
|
||||
{ // line 1, address 0x3fa78
|
||||
struct PACKED_CELL_OBJECT *ppco; // $s0
|
||||
{ // line 1, address 0x3fa78
|
||||
struct CELL_OBJECT *pco; // $a1
|
||||
} // line 1, address 0x3fb20
|
||||
} // line 1, address 0x3fb20
|
||||
} // line 105, address 0x3fb2c
|
||||
{ // line 110, address 0x3fb5c
|
||||
struct CELL_OBJECT *cop; // $a2
|
||||
{ // line 1, address 0x3fb5c
|
||||
struct PACKED_CELL_OBJECT *ppco; // $s0
|
||||
{ // line 1, address 0x3fb5c
|
||||
struct CELL_OBJECT *pco; // $a1
|
||||
} // line 1, address 0x3fc04
|
||||
} // line 1, address 0x3fc04
|
||||
} // line 111, address 0x3fc04
|
||||
{ // line 119, address 0x3fc50
|
||||
int yang; // $a1
|
||||
} // line 127, address 0x3fd38
|
||||
{ // line 135, address 0x3fd74
|
||||
struct CELL_OBJECT *cop; // $a2
|
||||
{ // line 1, address 0x3fd74
|
||||
struct PACKED_CELL_OBJECT *ppco; // $s0
|
||||
{ // line 1, address 0x3fd74
|
||||
struct CELL_OBJECT *pco; // $a1
|
||||
} // line 1, address 0x3fe1c
|
||||
} // line 1, address 0x3fe1c
|
||||
} // line 138, address 0x3fe68
|
||||
{ // line 149, address 0x3fe9c
|
||||
struct CELL_OBJECT *cop; // $a2
|
||||
{ // line 1, address 0x3fe9c
|
||||
struct PACKED_CELL_OBJECT *ppco; // $s0
|
||||
{ // line 1, address 0x3fe9c
|
||||
struct CELL_OBJECT *pco; // $a1
|
||||
} // line 1, address 0x3ff44
|
||||
} // line 1, address 0x3ff44
|
||||
} // line 159, address 0x3ff9c
|
||||
} // line 162, address 0x3ff9c
|
||||
} // line 163, address 0x3ff9c
|
||||
{ // line 188, address 0x40134
|
||||
} // line 189, address 0x4013c
|
||||
{ // line 198, address 0x4014c
|
||||
} // line 200, address 0x40174
|
||||
{ // line 206, address 0x401a0
|
||||
struct VECTOR newpos; // stack address -128
|
||||
struct CELL_OBJECT *cop; // $s0
|
||||
} // line 207, address 0x401a0
|
||||
} // line 240, address 0x40280
|
||||
/*
|
||||
* Offset 0x40280
|
||||
* D:\driver2\game\C\DRAW.C (line 1125)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetupPlaneColours(unsigned long ambient /*$a3*/)
|
||||
{ // line 1, address 0x40280
|
||||
{ // line 15, address 0x4031c
|
||||
unsigned long r; // $t4
|
||||
unsigned long g; // $t2
|
||||
unsigned long b; // $a0
|
||||
} // line 15, address 0x4031c
|
||||
} // line 34, address 0x40470
|
||||
/*
|
||||
* Offset 0x40470
|
||||
* D:\driver2\game\C\DRAW.C (line 1162)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ SetupDrawMapPSX()
|
||||
{ // line 3, address 0x40470
|
||||
{ // line 4, address 0x404d0
|
||||
int region_x1; // $t0
|
||||
int region_z1; // $a0
|
||||
int current_barrel_region_x1; // $v0
|
||||
int current_barrel_region_z1; // $a0
|
||||
} // line 16, address 0x404f4
|
||||
{ // line 16, address 0x404f4
|
||||
int theta; // $s2
|
||||
} // line 34, address 0x40568
|
||||
} // line 38, address 0x4059c
|
||||
/*
|
||||
* Offset 0x4059C
|
||||
* D:\driver2\game\C\DRAW.C (line 1209)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ InitFrustrumMatrix()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x40670
|
||||
* D:\driver2\game\C\DRAW.C (line 1425)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ProcessMapLump(char *lump_ptr /*$v0*/, int lump_size /*$a1*/)
|
||||
{ // line 1, address 0x40670
|
||||
char *cellptr; // $s0
|
||||
int cell_size; // $a3
|
||||
int region_size; // $t0
|
||||
} // line 53, address 0x40840
|
||||
/*
|
||||
* Offset 0x40840
|
||||
* D:\driver2\game\C\DRAW.C (line 1711)
|
||||
* Stack frame base $sp, length 128
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ DrawAllTheCars(int view /*$s6*/)
|
||||
{ // line 1, address 0x40840
|
||||
int loop; // $s0
|
||||
int x; // $s2
|
||||
int z; // $s1
|
||||
int xd; // $a0
|
||||
int zd; // $v1
|
||||
struct _CAR_DATA *cars_to_draw[20]; // stack address -112
|
||||
int num_cars_to_draw; // $s4
|
||||
static int car_distance[20]; // address 0x0
|
||||
static int temp; // address 0x0
|
||||
{ // line 1, address 0x40840
|
||||
struct _CAR_DATA *lcp; // $s0
|
||||
{ // line 27, address 0x408c8
|
||||
int dist; // $v0
|
||||
} // line 37, address 0x40948
|
||||
} // line 40, address 0x40958
|
||||
{ // line 46, address 0x40960
|
||||
int i; // $a0
|
||||
{ // line 51, address 0x40988
|
||||
struct _CAR_DATA *car; // $t4
|
||||
int dist; // $t0
|
||||
int j; // $a3
|
||||
} // line 60, address 0x40a08
|
||||
} // line 63, address 0x40a28
|
||||
{ // line 79, address 0x40a4c
|
||||
int spacefree; // $a1
|
||||
} // line 87, address 0x40a94
|
||||
} // line 113, address 0x40ad0
|
||||
/*
|
||||
* Offset 0x40AF8
|
||||
* D:\driver2\game\C\DRAW.C (line 1857)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ PlotBuildingModelSubdivNxN(struct MODEL *model /*$t0*/, int rot /*stack 4*/, struct _pct *pc /*$s2*/, int n /*stack 12*/)
|
||||
{ // line 1, address 0x40af8
|
||||
struct SVECTOR *verts; // $s4
|
||||
struct PL_POLYFT4 *polys; // $s1
|
||||
int i; // $s7
|
||||
int asdf; // $fp
|
||||
{ // line 19, address 0x40ba8
|
||||
unsigned long word0; // $s0
|
||||
{ // line 29, address 0x40c04
|
||||
int Z; // stack address -48
|
||||
unsigned int vidx; // $s3
|
||||
{ // line 39, address 0x40c38
|
||||
unsigned long th; // $v1
|
||||
} // line 45, address 0x40c78
|
||||
{ // line 83, address 0x40e98
|
||||
int diff; // $a1
|
||||
int min; // $a2
|
||||
{ // line 88, address 0x40e98
|
||||
int max; // $v1
|
||||
} // line 92, address 0x40f0c
|
||||
{ // line 113, address 0x40f78
|
||||
int w; // $s0
|
||||
} // line 116, address 0x40fa4
|
||||
{ // line 126, address 0x410c8
|
||||
struct POLY_FT4 *prims; // $t2
|
||||
int uv0; // $v1
|
||||
int uv1; // $a2
|
||||
int uv2; // $t3
|
||||
int uv3; // $t1
|
||||
{ // line 137, address 0x41110
|
||||
unsigned int r; // $a2
|
||||
} // line 137, address 0x41110
|
||||
{ // line 137, address 0x41110
|
||||
int r2; // $v1
|
||||
} // line 137, address 0x41110
|
||||
} // line 162, address 0x411a8
|
||||
} // line 164, address 0x411a8
|
||||
} // line 169, address 0x411c0
|
||||
} // line 176, address 0x411e0
|
||||
} // line 183, address 0x4125c
|
||||
/*
|
||||
* Offset 0x4125C
|
||||
* D:\driver2\game\C\DRAW.C (line 2053)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
int /*$ra*/ DrawAllBuildings(unsigned long *objects /*$t3*/, int num_buildings /*$s5*/, struct DB *disp /*$a2*/)
|
||||
{ // line 1, address 0x4125c
|
||||
int i; // $s3
|
||||
int model_number; // $v0
|
||||
int prev_mat; // $s4
|
||||
struct MODEL *model; // $a0
|
||||
struct CELL_OBJECT *building; // $s0
|
||||
{ // line 38, address 0x41394
|
||||
int spacefree; // $a0
|
||||
{ // line 81, address 0x413c4
|
||||
} // line 82, address 0x413cc
|
||||
{ // line 85, address 0x413cc
|
||||
int zBias; // $v0
|
||||
unsigned long *savedOT; // $s1
|
||||
} // line 97, address 0x41400
|
||||
} // line 97, address 0x41400
|
||||
} // line 126, address 0x414a4
|
||||
/*
|
||||
* Offset 0x414A4
|
||||
* D:\driver2\game\C\DRAW.C (line 2181)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ RenderModel(struct MODEL *model /*$s2*/, struct MATRIX *matrix /*$a1*/, struct VECTOR *pos /*$a2*/, int zBias /*$s0*/, int flags /*stack 16*/)
|
||||
{ // line 1, address 0x414a4
|
||||
int i; // $t0
|
||||
unsigned long *savedOT; // $s1
|
||||
{ // line 10, address 0x414d0
|
||||
struct MATRIX comb; // stack address -48
|
||||
} // line 15, address 0x41500
|
||||
{ // line 29, address 0x415a0
|
||||
int spacefree; // $a0
|
||||
} // line 41, address 0x41628
|
||||
} // line 43, address 0x4164c
|
||||
/*
|
||||
* Offset 0x4164C
|
||||
* D:\driver2\game\C\DRAW.C (line 2267)
|
||||
* Stack frame base $sp, length 16
|
||||
*/
|
||||
unsigned long /*$ra*/ normalIndex(struct SVECTOR *verts /*$a0*/, unsigned int vidx /*$a1*/)
|
||||
{ // line 1, address 0x4164c
|
||||
int th23; // $a0
|
||||
int nx; // $t4
|
||||
int ny; // $v1
|
||||
int nz; // $a2
|
||||
struct SVECTOR p; // stack address -16
|
||||
struct SVECTOR q; // stack address -8
|
||||
{ // line 1, address 0x4164c
|
||||
int x; // $a1
|
||||
int y; // $a0
|
||||
} // line 8, address 0x4178c
|
||||
} // line 19, address 0x4180c
|
||||
/*
|
||||
* Offset 0x4180C
|
||||
* D:\driver2\game\C\DRAW.C (line 1219)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetFrustrumMatrix()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x41844
|
||||
* D:\driver2\game\C\DRAW.C (line 1224)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ Set_Inv_CameraMatrix()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4187C
|
||||
* D:\driver2\game\C\DRAW.C (line 1324)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ CalcObjectRotationMatrices()
|
||||
{ // line 2, address 0x4187c
|
||||
int i; // $s1
|
||||
int j; // $a0
|
||||
struct SVECTOR ang; // stack address -56
|
||||
struct MATRIX mat; // stack address -48
|
||||
} // line 17, address 0x41924
|
||||
/*
|
||||
* Offset 0x41924
|
||||
* D:\driver2\game\C\DRAW.C (line 1344)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ PlotMDL_less_than_128(struct MODEL *model /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x41950
|
||||
* D:\driver2\game\C\DRAW.C (line 854)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
struct CELL_OBJECT * /*$ra*/ UnpackCellObject(struct PACKED_CELL_OBJECT *ppco /*$a3*/, struct XZPAIR *near /*$t0*/)
|
||||
{ // line 1, address 0x41950
|
||||
struct CELL_OBJECT *pco; // $a2
|
||||
} // line 16, address 0x41a10
|
140
src/C/drivinggames.c
Normal file
140
src/C/drivinggames.c
Normal file
@ -0,0 +1,140 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x43174
|
||||
* D:\driver2\game\C\DRIVINGGAMES.C (line 231)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitDrivingGames()
|
||||
{ // line 2, address 0x43174
|
||||
char filename[64]; // stack address -72
|
||||
int i; // $a0
|
||||
int j; // $v1
|
||||
} // line 57, address 0x432d4
|
||||
/*
|
||||
* Offset 0x432D4
|
||||
* D:\driver2\game\C\DRIVINGGAMES.C (line 290)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ HandleDrivingGames()
|
||||
{ // line 2, address 0x432d4
|
||||
struct _CAR_DATA *cp; // $a2
|
||||
struct VECTOR vel; // stack address -96
|
||||
int i; // $s3
|
||||
int j; // $v1
|
||||
int k; // $a0
|
||||
int id; // $s2
|
||||
int dist; // $a1
|
||||
{ // line 61, address 0x433bc
|
||||
struct VECTOR pos1; // stack address -80
|
||||
struct VECTOR pos2; // stack address -64
|
||||
int x; // $t0
|
||||
int z; // $a1
|
||||
int r; // $v0
|
||||
int side; // $s1
|
||||
int radius; // $a0
|
||||
} // line 123, address 0x436c0
|
||||
{ // line 145, address 0x43768
|
||||
struct VECTOR pos; // stack address -80
|
||||
} // line 166, address 0x43868
|
||||
} // line 185, address 0x43944
|
||||
/*
|
||||
* Offset 0x43944
|
||||
* D:\driver2\game\C\DRIVINGGAMES.C (line 477)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DrawDrivingGames()
|
||||
{ // line 2, address 0x43944
|
||||
struct VECTOR wpos; // stack address -24
|
||||
int i; // $s0
|
||||
} // line 49, address 0x43a64
|
||||
/*
|
||||
* Offset 0x43A64
|
||||
* D:\driver2\game\C\DRIVINGGAMES.C (line 545)
|
||||
* Stack frame base $sp, length 232
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ CarConeCollision(struct VECTOR *pPos /*$a0*/, int car /*$a1*/)
|
||||
{ // line 1, address 0x43a64
|
||||
struct CDATA2D cd[2]; // stack address -216
|
||||
struct _CAR_DATA *cp1; // $t0
|
||||
int carLength[2]; // stack address -16
|
||||
{ // line 20, address 0x43b3c
|
||||
} // line 20, address 0x43b3c
|
||||
} // line 21, address 0x43b50
|
||||
/*
|
||||
* Offset 0x43B50
|
||||
* D:\driver2\game\C\DRIVINGGAMES.C (line 578)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ SetSmashedCone(int cone /*$s1*/, struct VECTOR *velocity /*$a1*/, int player /*$s2*/, int side /*$a3*/)
|
||||
{ // line 1, address 0x43b50
|
||||
struct SMASHED_CONE *sc; // $s0
|
||||
int chan; // $s0
|
||||
} // line 43, address 0x43d48
|
||||
/*
|
||||
* Offset 0x43D48
|
||||
* D:\driver2\game\C\DRIVINGGAMES.C (line 628)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ MoveSmashedCones()
|
||||
{ // line 2, address 0x43d48
|
||||
int i; // $t0
|
||||
} // line 27, address 0x43e4c
|
||||
/*
|
||||
* Offset 0x43E54
|
||||
* D:\driver2\game\C\DRIVINGGAMES.C (line 730)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ DrawSmashedCone(struct SMASHED_CONE *sc /*$s0*/, struct VECTOR *wpos /*$s1*/)
|
||||
{ // line 1, address 0x43e54
|
||||
struct MATRIX object_matrix; // stack address -64
|
||||
struct MATRIX *finalmatrix; // $s2
|
||||
struct VECTOR pos; // stack address -32
|
||||
} // line 20, address 0x43f9c
|
||||
/*
|
||||
* Offset 0x43F9C
|
||||
* D:\driver2\game\C\DRIVINGGAMES.C (line 757)
|
||||
* Stack frame base $sp, length 16
|
||||
*/
|
||||
void /*$ra*/ GetConePos(int cone /*$a0*/, struct VECTOR *pos /*$t2*/, int side /*$a2*/)
|
||||
{ // line 1, address 0x43f9c
|
||||
struct VECTOR address; // stack address -16
|
||||
int x; // $t3
|
||||
int z; // $t4
|
||||
int r; // $v1
|
||||
int radius; // $a1
|
||||
} // line 35, address 0x4409c
|
||||
/*
|
||||
* Offset 0x4409C
|
||||
* D:\driver2\game\C\DRIVINGGAMES.C (line 703)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ DrawCone(struct VECTOR *position /*$s0*/, int cone /*$s1*/)
|
||||
{ // line 1, address 0x4409c
|
||||
struct MATRIX matrix; // stack address -64
|
||||
struct VECTOR pos; // stack address -32
|
||||
{ // line 10, address 0x440cc
|
||||
{ // line 12, address 0x440ec
|
||||
} // line 18, address 0x441bc
|
||||
} // line 19, address 0x441bc
|
||||
} // line 20, address 0x441bc
|
||||
/*
|
||||
* Offset 0x441D0
|
||||
* D:\driver2\game\C\DRIVINGGAMES.C (line 662)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DrawSmashedCones()
|
||||
{ // line 2, address 0x441d0
|
||||
struct SMASHED_CONE *sc; // $s0
|
||||
struct VECTOR wpos; // stack address -40
|
||||
int i; // $s1
|
||||
} // line 34, address 0x44290
|
113
src/C/e3stuff.c
Normal file
113
src/C/e3stuff.c
Normal file
@ -0,0 +1,113 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
POLYCOORD polycoords[6] =
|
||||
{
|
||||
{ 0, 0, 640, 0, 256, 256 },
|
||||
{ 256, 0, 768, 0, 256, 256 },
|
||||
{ 512, 0, 896, 0, 128, 256 },
|
||||
{ 0, 256, 640, 256, 256, 256 },
|
||||
{ 256, 256, 768, 256, 256, 256 },
|
||||
{ 512, 256, 896, 256, 128, 256 }
|
||||
};
|
||||
|
||||
DRAW_MODE draw_mode_pal =
|
||||
{ 0, 0, 0, 0, 512, 256, 0, 16 };
|
||||
|
||||
DRAW_MODE draw_mode_ntsc =
|
||||
{ 0, 0, 0, 8, 512, 240, 0, 0 };
|
||||
|
||||
/*
|
||||
* Offset 0x442AC
|
||||
* D:\driver2\game\C\E3STUFF.C (line 171)
|
||||
* Stack frame base $sp, length 512
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ FadeInHiresScreen(char *filename /*stack 0*/)
|
||||
{ // line 1, address 0x442ac
|
||||
struct DISPENV disp; // stack address -488
|
||||
struct DRAWENV draw; // stack address -464
|
||||
struct SPRT prims[6]; // stack address -368
|
||||
struct POLY_FT3 nulls[6]; // stack address -248
|
||||
struct RECT rect; // stack address -56
|
||||
unsigned long ot; // stack address -48
|
||||
int i; // $t5
|
||||
int col; // $s1
|
||||
} // line 80, address 0x4465c
|
||||
/*
|
||||
* Offset 0x4465C
|
||||
* D:\driver2\game\C\E3STUFF.C (line 258)
|
||||
* Stack frame base $sp, length 520
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ FadeOutHiresScreen()
|
||||
{ // line 2, address 0x4465c
|
||||
struct DISPENV disp; // stack address -496
|
||||
struct DRAWENV draw; // stack address -472
|
||||
struct SPRT prims[6]; // stack address -376
|
||||
struct POLY_FT3 nulls[6]; // stack address -256
|
||||
struct RECT rect; // stack address -64
|
||||
unsigned long ot; // stack address -56
|
||||
int i; // $t5
|
||||
int col; // $s1
|
||||
} // line 60, address 0x44934
|
||||
/*
|
||||
* Offset 0x44934
|
||||
* D:\driver2\game\C\E3STUFF.C (line 391)
|
||||
* Stack frame base $sp, length 168
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ SetPleaseWait(char *buffer /*$s2*/)
|
||||
{ // line 1, address 0x44934
|
||||
struct DISPENV disp; // stack address -144
|
||||
struct DRAWENV draw; // stack address -120
|
||||
struct RECT rect; // stack address -24
|
||||
char *exe; // $a0
|
||||
} // line 44, address 0x44aa8
|
||||
/*
|
||||
* Offset 0x44AA8
|
||||
* D:\driver2\game\C\E3STUFF.C (line 443)
|
||||
* Stack frame base $sp, length 184
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ CheckForCorrectDisc(int disc /*$s0*/)
|
||||
{ // line 1, address 0x44aa8
|
||||
struct DISPENV disp; // stack address -160
|
||||
struct DRAWENV draw; // stack address -136
|
||||
struct RECT rect; // stack address -40
|
||||
char *mess1; // $s6
|
||||
char *mess2; // $s3
|
||||
char *exe; // $s4
|
||||
int ret; // $s0
|
||||
int discerror; // $s5
|
||||
{ // line 49, address 0x44bd8
|
||||
} // line 79, address 0x44c5c
|
||||
} // line 95, address 0x44d20
|
||||
/*
|
||||
* Offset 0x44D48
|
||||
* D:\driver2\game\C\E3STUFF.C (line 139)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ ShowHiresScreens(char **names /*$s1*/, int delay /*$s4*/, int wait /*$s3*/)
|
||||
{ // line 1, address 0x44d48
|
||||
char *filename; // $a0
|
||||
int timedelay; // $s0
|
||||
} // line 25, address 0x44e08
|
||||
/*
|
||||
* Offset 0x44E08
|
||||
* D:\driver2\game\C\E3STUFF.C (line 350)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetupDefDispEnv(struct DISPENV *env /*$s0*/, int x /*$a1*/, int y /*$a2*/, int w /*$a3*/, int h /*stack 16*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x44EA8
|
||||
* D:\driver2\game\C\E3STUFF.C (line 325)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetupDefDrawEnv(struct DRAWENV *env /*$a0*/, int x /*$a1*/, int y /*$a2*/, int w /*$a3*/, int h /*stack 16*/)
|
||||
{
|
||||
}
|
26
src/C/enviro.c
Normal file
26
src/C/enviro.c
Normal file
@ -0,0 +1,26 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
short gPlayerCar0ShinyFaces[38];
|
||||
|
||||
/*
|
||||
* Offset 0x44EF0
|
||||
* D:\driver2\game\C\ENVIRO.C (line 46)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ Env_MakeColourAddTable(short *shinysrc /*$s0*/, char *polytable /*$s1*/, int length /*$a2*/)
|
||||
{ // line 1, address 0x44ef0
|
||||
short addval; // $a0
|
||||
short polynum; // $v1
|
||||
} // line 21, address 0x44f70
|
||||
/*
|
||||
* Offset 0x44F70
|
||||
* D:\driver2\game\C\ENVIRO.C (line 72)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ Init_Reflection_Mapping()
|
||||
{ // line 2, address 0x44f70
|
||||
struct TPAN pos; // stack address -16
|
||||
int count; // $v1
|
||||
} // line 17, address 0x44fc8
|
10
src/C/envsound.c
Normal file
10
src/C/envsound.c
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
/*
|
||||
* Offset 0x44FC8
|
||||
* D:\driver2\game\C\ENVSOUND.C (line 41)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ AddEnvSounds(int level /*$a0*/, int time /*$a1*/)
|
||||
{
|
||||
}
|
960
src/C/event.c
Normal file
960
src/C/event.c
Normal file
@ -0,0 +1,960 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
int ElTrainData[83] = {
|
||||
6, 80, 130, 32768, 336284, -220364, 283420, -2147483646,
|
||||
-204500, -158924, 247580, -123084, 188624, -158924,
|
||||
73520, -138444, 17200, -124148, -39120, -2147483646,
|
||||
-109276, -82131, -80103, -17628, -203568, -124712,
|
||||
-39728, -265000, 129620, -386012, 2147483648, 80,
|
||||
130, 0, -158928, 189219, -123684, 246995, -2147483647,
|
||||
0, 90, 32768, 188402, -425768, 354291, 2147483648,
|
||||
0, 90, 32768, 354291, -425168, 188402, 2147483648,
|
||||
60, 110, 0, -386012, 130215, -264404, -39132, -124688,
|
||||
16619, -139048, 72943, -159520, 282863, -2147483646,
|
||||
-204991, -220964, 336284, 2147483648, 70, 120, 0,
|
||||
-82719, -39712, -2147483646, -115487, -124120, -202968,
|
||||
-18216, -80683, -2147483647
|
||||
};
|
||||
|
||||
int VegasTrainData[7] = {
|
||||
123, 32768, 982000, -68855, 762717, 2147483648
|
||||
};
|
||||
|
||||
int VegasParkedTrains[3] = {
|
||||
-68855, 975520, 792317
|
||||
};
|
||||
|
||||
int HavanaFerryData[12] = {
|
||||
40, 0, 0, 425555, -452, 20000, 25, 0, 0, 315750, 130740, 135960
|
||||
};
|
||||
|
||||
int RioFerryData[6] = {
|
||||
6, 0, 0, 200384, 387424, 410000
|
||||
};
|
||||
|
||||
int HavanaMiniData[4] = {
|
||||
50, 3995, 4605, 0
|
||||
};
|
||||
|
||||
int LiftingBridges[55] = {
|
||||
8, -182784, -175616, -168448, 7, -227328, -162304,
|
||||
-141824, -121344, -100864, -80384, -59904, 256, -312832,
|
||||
-305664, -298496, 1, 324096, -311808, -304640, -297472,
|
||||
1, 247296, -256512, -249344, -242176, 1, 247296,
|
||||
-262656, -255488, -248320, 1, 324096, 32768, 170496,
|
||||
177664, 184832, 1, -271360, -12800, -5632, 1536,
|
||||
5, -162304, -102912, -82432, -61952, -39936, -6656,
|
||||
512, 7680, 3, 4137, 27648, 128000
|
||||
};
|
||||
|
||||
|
||||
int ChicagoCameraHack[3] = {
|
||||
-208006, 198, 657039
|
||||
};
|
||||
|
||||
int HavanaCameraHack[9] = {
|
||||
-491431, 3568, -139048, -453981, 409, -128009, -453975, 429, -127175
|
||||
};
|
||||
|
||||
int VegasCameraHack[16] = {
|
||||
124092, 3988, 3494, -11285, 1559, 843824, -38801,
|
||||
2681, 273148, -36925, 2048, 269647, 273935, -65503, 1617, 796775
|
||||
};
|
||||
|
||||
int RioCameraHack[6] = {
|
||||
-276620, 3072, -321920, -40920, 3623, 382170
|
||||
};
|
||||
|
||||
MissionTrain missionTrain[2] =
|
||||
{
|
||||
{ 0, ElTrainData+4, 100, 150, 200, 289051, 32768 },
|
||||
{ 0, ElTrainData+7, 125, 145, 215, 4294762796, 0 }
|
||||
};
|
||||
|
||||
FixedEvent chicagoDoor[3] =
|
||||
{
|
||||
{
|
||||
{ 4294759680, 0, 659706, 0 },
|
||||
0,
|
||||
0,
|
||||
800u,
|
||||
0u,
|
||||
25u,
|
||||
50u,
|
||||
80,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"WRGFLDDOOR"
|
||||
},
|
||||
{
|
||||
{ 4294758144, 4294966784, 668928, 0 },
|
||||
0,
|
||||
0,
|
||||
2496u,
|
||||
4096u,
|
||||
25u,
|
||||
50u,
|
||||
64,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"DOOR01"
|
||||
},
|
||||
{
|
||||
{ 195264, 4294963568, 74752, 0 },
|
||||
0,
|
||||
0,
|
||||
0u,
|
||||
0u,
|
||||
0u,
|
||||
0u,
|
||||
1088,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"FRAME"
|
||||
}
|
||||
};
|
||||
|
||||
FixedEvent havanaFixed[3] =
|
||||
{
|
||||
{
|
||||
{ 4294784000, 4294967023, 4294925576, 0 },
|
||||
0,
|
||||
0,
|
||||
800u,
|
||||
0u,
|
||||
25u,
|
||||
50u,
|
||||
64,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"DOOR"
|
||||
},
|
||||
{
|
||||
{ 4294512128, 1529, 4294841856, 0 },
|
||||
0,
|
||||
0,
|
||||
0u,
|
||||
0u,
|
||||
0u,
|
||||
0u,
|
||||
1536,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"LIFT_SHAFT"
|
||||
},
|
||||
{
|
||||
{ 4294479360, 0, 4294830607, 0 },
|
||||
0,
|
||||
0,
|
||||
1152u,
|
||||
0u,
|
||||
10u,
|
||||
20u,
|
||||
80,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"BASEDOOR"
|
||||
}
|
||||
};
|
||||
|
||||
FixedEvent vegasDoor[5] =
|
||||
{
|
||||
{
|
||||
{ 4294955445, 0, 844163, 0 },
|
||||
0,
|
||||
0,
|
||||
1700u,
|
||||
3072u,
|
||||
25u,
|
||||
50u,
|
||||
80,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"DOOR"
|
||||
},
|
||||
{
|
||||
{ 4294861054, 4294967057, 4294750336, 0 },
|
||||
0,
|
||||
0,
|
||||
800u,
|
||||
0u,
|
||||
25u,
|
||||
50u,
|
||||
96,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"DOOR01"
|
||||
},
|
||||
{
|
||||
{ 63058, 4294967065, 501184, 0 },
|
||||
0,
|
||||
0,
|
||||
3200u,
|
||||
4096u,
|
||||
25u,
|
||||
50u,
|
||||
96,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"DOOR02"
|
||||
},
|
||||
{
|
||||
{ 4294807940, 4294967120, 647024, 0 },
|
||||
0,
|
||||
0,
|
||||
3200u,
|
||||
4096u,
|
||||
25u,
|
||||
50u,
|
||||
64,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"DOOR03"
|
||||
},
|
||||
{
|
||||
{ 123936, 4294967126, 4928, 0 },
|
||||
0,
|
||||
0,
|
||||
3200u,
|
||||
4096u,
|
||||
25u,
|
||||
50u,
|
||||
80,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"GATE01"
|
||||
}
|
||||
};
|
||||
|
||||
FixedEvent rioDoor[6] =
|
||||
{
|
||||
{
|
||||
{ 4294843968, 4294967119, 4294712576, 0 },
|
||||
0,
|
||||
0,
|
||||
3200u,
|
||||
4096u,
|
||||
25u,
|
||||
50u,
|
||||
96,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"DOOR1"
|
||||
},
|
||||
{
|
||||
{ 4294842048, 4294967279, 4294711088, 0 },
|
||||
0,
|
||||
0,
|
||||
1600u,
|
||||
0u,
|
||||
25u,
|
||||
50u,
|
||||
80,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"DOOR2"
|
||||
},
|
||||
{
|
||||
{ 4294693296, 4294967279, 4294645888, 0 },
|
||||
0,
|
||||
0,
|
||||
1748u,
|
||||
3072u,
|
||||
25u,
|
||||
50u,
|
||||
80,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"GATE01"
|
||||
},
|
||||
{
|
||||
{ 4294693296, 4294967279, 4294644864, 0 },
|
||||
0,
|
||||
0,
|
||||
2348u,
|
||||
1024u,
|
||||
25u,
|
||||
50u,
|
||||
80,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"GATE01"
|
||||
},
|
||||
{
|
||||
{ 4294926864, 4294967279, 383328, 0 },
|
||||
0,
|
||||
0,
|
||||
700u,
|
||||
2048u,
|
||||
25u,
|
||||
50u,
|
||||
80,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"GATE03"
|
||||
},
|
||||
{
|
||||
{ 4294927872, 4294967279, 383328, 0 },
|
||||
0,
|
||||
0,
|
||||
900u,
|
||||
0u,
|
||||
25u,
|
||||
50u,
|
||||
80,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"GATE03"
|
||||
}
|
||||
};
|
||||
|
||||
Helicopter HelicopterData =
|
||||
{
|
||||
400,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
{ { 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u }, 0u, 0u, '\0', '\0' },
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x45B20
|
||||
* D:\driver2\game\C\EVENT.C (line 249)
|
||||
* Stack frame base $sp, length 16
|
||||
*/
|
||||
int /*$ra*/ GetVisValue(int index /*$t1*/, int zDir /*$a1*/)
|
||||
{ // line 1, address 0x45b20
|
||||
int value; // $v1
|
||||
int radius; // $a0
|
||||
{ // line 7, address 0x45b30
|
||||
int camera; // $a0
|
||||
} // line 10, address 0x45b90
|
||||
{ // line 14, address 0x45b98
|
||||
struct _EVENT *ev; // $a0
|
||||
int multiple; // $a2
|
||||
{ // line 25, address 0x45c24
|
||||
struct VECTOR pos; // stack address -16
|
||||
} // line 32, address 0x45ca4
|
||||
} // line 34, address 0x45ca8
|
||||
} // line 45, address 0x45cd0
|
||||
/*
|
||||
* Offset 0x45CD0
|
||||
* D:\driver2\game\C\EVENT.C (line 297)
|
||||
* Stack frame base $sp, length 568
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ VisibilityLists(enum VisType type /*$a0*/, int i /*$s2*/)
|
||||
{ // line 1, address 0x45cd0
|
||||
static unsigned short xList[128]; // address 0x0
|
||||
static unsigned short zList[128]; // address 0x100
|
||||
static unsigned short *firstX[2]; // address 0x0
|
||||
static unsigned short *firstZ[2]; // address 0x8
|
||||
static int count; // address 0x10
|
||||
{ // line 34, address 0x45e00
|
||||
static unsigned short *list[2]; // address 0x50
|
||||
int table[128]; // stack address -552
|
||||
int j; // $s0
|
||||
{ // line 42, address 0x45e78
|
||||
int tempList; // $t7
|
||||
int k; // $t0
|
||||
} // line 53, address 0x45f20
|
||||
} // line 55, address 0x45f34
|
||||
{ // line 58, address 0x45f7c
|
||||
int camera; // $a1
|
||||
} // line 64, address 0x45fe0
|
||||
{ // line 68, address 0x45ff8
|
||||
struct _EVENT *ev; // $a0
|
||||
} // line 87, address 0x460d0
|
||||
{ // line 90, address 0x460d0
|
||||
struct _EVENT *ev; // $v1
|
||||
} // line 101, address 0x46124
|
||||
} // line 103, address 0x46154
|
||||
/*
|
||||
* Offset 0x46154
|
||||
* D:\driver2\game\C\EVENT.C (line 422)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ InitTrain(struct _EVENT *ev /*$s0*/, int count /*$s3*/, int type /*$a2*/)
|
||||
{ // line 1, address 0x46154
|
||||
int height; // $s2
|
||||
int length; // $s1
|
||||
int *to; // $a0
|
||||
} // line 47, address 0x462c0
|
||||
/*
|
||||
* Offset 0x462C0
|
||||
* D:\driver2\game\C\EVENT.C (line 515)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ SetUpEvents(int full /*stack 0*/)
|
||||
{ // line 1, address 0x462c0
|
||||
int count; // $s5
|
||||
int *p; // $s2
|
||||
int cEvents; // stack address -52
|
||||
struct _EVENT **e; // stack address -56
|
||||
{ // line 25, address 0x46378
|
||||
int ElTrackModel; // stack address -48
|
||||
int carModel; // stack address -44
|
||||
int direction; // $fp
|
||||
int i; // $s3
|
||||
{ // line 36, address 0x4639c
|
||||
int cBridges; // $s1
|
||||
int timeOffset; // $a2
|
||||
int loop; // $a3
|
||||
} // line 91, address 0x465b0
|
||||
{ // line 110, address 0x46690
|
||||
int cCarriages; // $s0
|
||||
int first; // $s1
|
||||
{ // line 119, address 0x46698
|
||||
} // line 120, address 0x466ac
|
||||
} // line 149, address 0x467c4
|
||||
} // line 188, address 0x46930
|
||||
{ // line 243, address 0x46b0c
|
||||
int trainModel; // $s5
|
||||
int loop; // $s1
|
||||
int carriages; // $s2
|
||||
{ // line 296, address 0x46c9c
|
||||
int loop; // $t1
|
||||
{ // line 309, address 0x46e40
|
||||
int detonatorModel; // $v0
|
||||
} // line 314, address 0x46e98
|
||||
} // line 315, address 0x46e98
|
||||
} // line 319, address 0x46ea0
|
||||
{ // line 323, address 0x46ea0
|
||||
int detonatorModel; // $s3
|
||||
int loop; // $s1
|
||||
{ // line 367, address 0x46fec
|
||||
int loop; // $s1
|
||||
{ // line 373, address 0x470fc
|
||||
struct XYPAIR address; // stack address -64
|
||||
} // line 381, address 0x47208
|
||||
} // line 389, address 0x47280
|
||||
{ // line 394, address 0x472b4
|
||||
} // line 431, address 0x47524
|
||||
} // line 433, address 0x47524
|
||||
} // line 449, address 0x475a0
|
||||
/*
|
||||
* Offset 0x475A0
|
||||
* D:\driver2\game\C\EVENT.C (line 991)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ SetCamera(struct _EVENT *ev /*$s5*/)
|
||||
{ // line 1, address 0x475a0
|
||||
int rotation; // $s4
|
||||
int axis; // $a3
|
||||
struct VECTOR pivot; // stack address -96
|
||||
int iPivot; // $a2
|
||||
int height; // $a1
|
||||
struct SVECTOR address; // stack address -80
|
||||
{ // line 46, address 0x476f0
|
||||
struct MATRIX matrix; // stack address -72
|
||||
struct SVECTOR temp; // stack address -40
|
||||
{ // line 54, address 0x47774
|
||||
} // line 64, address 0x477c4
|
||||
} // line 66, address 0x477c4
|
||||
} // line 113, address 0x47a44
|
||||
/*
|
||||
* Offset 0x47A44
|
||||
* D:\driver2\game\C\EVENT.C (line 1152)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ StepFromToEvent(struct _EVENT *ev /*$a3*/)
|
||||
{ // line 1, address 0x47a44
|
||||
{ // line 8, address 0x47a70
|
||||
int *from; // $a1
|
||||
int *to; // $t4
|
||||
long *current; // $t0
|
||||
int d; // $a0
|
||||
int d2; // $t2
|
||||
} // line 56, address 0x47c2c
|
||||
} // line 57, address 0x47c3c
|
||||
/*
|
||||
* Offset 0x47C3C
|
||||
* D:\driver2\game\C\EVENT.C (line 1214)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ StepPathEvent(struct _EVENT *ev /*$s0*/)
|
||||
{ // line 1, address 0x47c3c
|
||||
int *from; // $a1
|
||||
int *to; // $t1
|
||||
long *current; // $t3
|
||||
static int speed; // address 0x20
|
||||
{ // line 11, address 0x47c70
|
||||
int flags; // $v0
|
||||
} // line 19, address 0x47c9c
|
||||
{ // line 28, address 0x47ce4
|
||||
enum Station station; // $t2
|
||||
{ // line 62, address 0x47d94
|
||||
int direction; // $t2
|
||||
int loop; // $a2
|
||||
int *i; // $a0
|
||||
int turn[4]; // stack address -48
|
||||
struct XZPAIR centre; // stack address -32
|
||||
struct XZPAIR address; // stack address -24
|
||||
} // line 134, address 0x48000
|
||||
{ // line 141, address 0x48018
|
||||
int d; // $a0
|
||||
int d1; // $v1
|
||||
int dir; // $t4
|
||||
} // line 233, address 0x48360
|
||||
} // line 234, address 0x48360
|
||||
} // line 235, address 0x48374
|
||||
/*
|
||||
* Offset 0x48374
|
||||
* D:\driver2\game\C\EVENT.C (line 1478)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ StepHelicopter(struct _EVENT *ev /*$s0*/)
|
||||
{ // line 1, address 0x48374
|
||||
static int rotacc; // address 0xa4
|
||||
{ // line 7, address 0x4839c
|
||||
int b; // $a0
|
||||
int c; // $t2
|
||||
int d; // $v1
|
||||
int t; // $a1
|
||||
int t2; // $a3
|
||||
int t3; // $v1
|
||||
int dx1; // $a2
|
||||
int dx2; // $t1
|
||||
int dx3; // $t0
|
||||
int dz1; // $v0
|
||||
int dz2; // $a3
|
||||
int dz3; // $a0
|
||||
{ // line 44, address 0x48508
|
||||
struct XZPAIR vel; // stack address -56
|
||||
int direction; // $t1
|
||||
int temp; // $t1
|
||||
int dt; // $a0
|
||||
int d2p; // $v1
|
||||
int d2r; // $v1
|
||||
int pitch; // $a1
|
||||
int roll; // $a2
|
||||
static int rotating; // address 0x24
|
||||
} // line 99, address 0x4885c
|
||||
{ // line 112, address 0x488bc
|
||||
struct VECTOR pos; // stack address -48
|
||||
} // line 113, address 0x488bc
|
||||
} // line 131, address 0x48998
|
||||
{ // line 135, address 0x489b0
|
||||
struct VECTOR pos; // stack address -56
|
||||
struct VECTOR drift; // stack address -32
|
||||
} // line 135, address 0x489b0
|
||||
} // line 155, address 0x48ac8
|
||||
/*
|
||||
* Offset 0x48AC8
|
||||
* D:\driver2\game\C\EVENT.C (line 1642)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ StepEvents()
|
||||
{ // line 3, address 0x48ac8
|
||||
struct _EVENT *ev; // $s0
|
||||
{ // line 29, address 0x48b2c
|
||||
struct VECTOR old; // stack address -72
|
||||
int onBoatLastFrame; // $s7
|
||||
{ // line 34, address 0x48b34
|
||||
int dist; // stack address -48
|
||||
int loop; // $s2
|
||||
struct _CAR_DATA *cp; // $s1
|
||||
} // line 57, address 0x48c00
|
||||
{ // line 72, address 0x48ca8
|
||||
int d2; // $a2
|
||||
} // line 75, address 0x48d1c
|
||||
{ // line 82, address 0x48d40
|
||||
} // line 83, address 0x48d64
|
||||
{ // line 87, address 0x48d78
|
||||
struct XZPAIR speed; // stack address -56
|
||||
{ // line 91, address 0x48d90
|
||||
int loop; // $s2
|
||||
int mask; // $s1
|
||||
{ // line 98, address 0x48dc8
|
||||
struct VECTOR *pos; // $a0
|
||||
struct VECTOR *vel; // $a1
|
||||
} // line 133, address 0x48eb4
|
||||
} // line 134, address 0x48ecc
|
||||
} // line 135, address 0x48ecc
|
||||
} // line 136, address 0x48ecc
|
||||
{ // line 155, address 0x48fac
|
||||
{ // line 160, address 0x48fbc
|
||||
int sign; // $t0
|
||||
unsigned short *target; // $a3
|
||||
} // line 178, address 0x490d8
|
||||
} // line 183, address 0x490e8
|
||||
{ // line 220, address 0x491b4
|
||||
int thisCamera; // $s1
|
||||
int otherCamera; // $s2
|
||||
int loop; // $s0
|
||||
unsigned short *x; // $t0
|
||||
unsigned short *z; // $a3
|
||||
{ // line 247, address 0x492a8
|
||||
struct CELL_OBJECT *cop; // $a2
|
||||
} // line 294, address 0x4932c
|
||||
} // line 299, address 0x49374
|
||||
} // line 309, address 0x493cc
|
||||
/*
|
||||
* Offset 0x493CC
|
||||
* D:\driver2\game\C\EVENT.C (line 2110)
|
||||
* Stack frame base $sp, length 128
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ DrawFerrisWheel(struct MATRIX *matrix /*$s0*/, struct VECTOR *pos /*$s1*/)
|
||||
{ // line 1, address 0x493cc
|
||||
{ // line 16, address 0x494c8
|
||||
int loop; // $s3
|
||||
struct MODEL *model; // $s2
|
||||
struct VECTOR spoke[2]; // stack address -104
|
||||
{ // line 28, address 0x4954c
|
||||
struct VECTOR address; // stack address -72
|
||||
struct VECTOR carPos; // stack address -56
|
||||
int rotation; // $v0
|
||||
} // line 32, address 0x4954c
|
||||
} // line 45, address 0x496c0
|
||||
} // line 47, address 0x496ec
|
||||
/*
|
||||
* Offset 0x496EC
|
||||
* D:\driver2\game\C\EVENT.C (line 2159)
|
||||
* Stack frame base $sp, length 136
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawRotor(struct VECTOR pos /*stack 0*/, struct MATRIX *matrix /*stack 16*/)
|
||||
{ // line 1, address 0x496ec
|
||||
struct SVECTOR v[5]; // stack address -120
|
||||
struct MATRIX local; // stack address -80
|
||||
struct POLY_FT4 *poly; // $t0
|
||||
struct TEXTURE_DETAILS *tex; // $t3
|
||||
int z; // stack address -48
|
||||
char *firstPoly; // $a1
|
||||
} // line 79, address 0x49ca0
|
||||
/*
|
||||
* Offset 0x49CA0
|
||||
* D:\driver2\game\C\EVENT.C (line 2240)
|
||||
* Stack frame base $sp, length 232
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawEvents(int camera /*stack 0*/)
|
||||
{ // line 1, address 0x49ca0
|
||||
unsigned short *x; // $a1
|
||||
unsigned short *z; // $a0
|
||||
int thisCamera; // stack address -56
|
||||
int otherCamera; // stack address -52
|
||||
static struct _EVENT *nearestTrain; // address 0x28
|
||||
static int distanceFromNearestTrain; // address 0x2c
|
||||
{ // line 36, address 0x49d7c
|
||||
struct _EVENT *ev; // $s1
|
||||
{ // line 49, address 0x49e74
|
||||
unsigned int dist; // $v1
|
||||
} // line 58, address 0x49edc
|
||||
{ // line 74, address 0x49f0c
|
||||
{ // line 76, address 0x49f3c
|
||||
struct MATRIX matrix; // stack address -208
|
||||
struct MATRIX ext; // stack address -176
|
||||
struct VECTOR pos; // stack address -144
|
||||
int reflection; // $s5
|
||||
int temp; // stack address -48
|
||||
{ // line 89, address 0x49fb0
|
||||
} // line 89, address 0x49fb0
|
||||
{ // line 95, address 0x4a01c
|
||||
{ // line 106, address 0x4a0a0
|
||||
struct VECTOR shadow[4]; // stack address -128
|
||||
int loop; // $t0
|
||||
{ // line 111, address 0x4a0c4
|
||||
struct XZPAIR address; // stack address -64
|
||||
int rotate; // $a1
|
||||
} // line 118, address 0x4a150
|
||||
} // line 121, address 0x4a180
|
||||
{ // line 133, address 0x4a1e4
|
||||
} // line 142, address 0x4a220
|
||||
} // line 143, address 0x4a220
|
||||
{ // line 153, address 0x4a280
|
||||
} // line 153, address 0x4a280
|
||||
{ // line 172, address 0x4a36c
|
||||
int i; // $a0
|
||||
} // line 179, address 0x4a3bc
|
||||
{ // line 184, address 0x4a3d0
|
||||
} // line 201, address 0x4a448
|
||||
} // line 245, address 0x4a5a8
|
||||
} // line 245, address 0x4a5a8
|
||||
} // line 255, address 0x4a5f0
|
||||
{ // line 270, address 0x4a690
|
||||
} // line 270, address 0x4a690
|
||||
} // line 276, address 0x4a6c0
|
||||
/*
|
||||
* Offset 0x4A6F0
|
||||
* D:\driver2\game\C\EVENT.C (line 2560)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
struct _sdPlane * /*$ra*/ EventSurface(struct VECTOR *pos /*$a0*/, struct _sdPlane *plane /*$s1*/)
|
||||
{ // line 1, address 0x4a6f0
|
||||
struct _EVENT *ev; // $s0
|
||||
int i; // $a2
|
||||
{ // line 12, address 0x4a768
|
||||
int dist; // $a3
|
||||
int end; // $a1
|
||||
int cos; // $a2
|
||||
} // line 63, address 0x4a8e8
|
||||
{ // line 68, address 0x4a8fc
|
||||
int dist; // stack address -24
|
||||
{ // line 72, address 0x4a90c
|
||||
int sin; // $a3
|
||||
int cos; // $a2
|
||||
int height; // $t0
|
||||
int address; // $a0
|
||||
} // line 104, address 0x4aa88
|
||||
} // line 105, address 0x4aa88
|
||||
} // line 121, address 0x4aae0
|
||||
/*
|
||||
* Offset 0x4AAE0
|
||||
* D:\driver2\game\C\EVENT.C (line 2718)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
struct VECTOR * /*$ra*/ TriggerEvent(int i /*$s4*/)
|
||||
{ // line 1, address 0x4aae0
|
||||
static int stage[10]; // address 0x200
|
||||
struct VECTOR *pos; // $s7
|
||||
{ // line 8, address 0x4ab18
|
||||
int loop; // $v1
|
||||
} // line 13, address 0x4ab38
|
||||
{ // line 21, address 0x4ab88
|
||||
struct _EVENT *ev; // $a2
|
||||
} // line 22, address 0x4ab88
|
||||
{ // line 36, address 0x4ac70
|
||||
{ // line 39, address 0x4ac70
|
||||
struct MissionTrain *train; // $s1
|
||||
{ // line 45, address 0x4aca0
|
||||
} // line 51, address 0x4acb8
|
||||
{ // line 56, address 0x4acc4
|
||||
struct _EVENT *ev; // $s0
|
||||
int count; // $s2
|
||||
int address; // $s6
|
||||
{ // line 67, address 0x4ad14
|
||||
int pos; // $a1
|
||||
} // line 67, address 0x4ad14
|
||||
} // line 99, address 0x4adf0
|
||||
} // line 101, address 0x4adf0
|
||||
{ // line 113, address 0x4ae20
|
||||
struct _EVENT *ev; // $v1
|
||||
int count; // $a0
|
||||
} // line 130, address 0x4ae6c
|
||||
} // line 142, address 0x4ae90
|
||||
{ // line 149, address 0x4aef8
|
||||
} // line 179, address 0x4afc8
|
||||
{ // line 187, address 0x4b010
|
||||
{ // line 189, address 0x4b010
|
||||
int loop; // $s0
|
||||
} // line 205, address 0x4b0ac
|
||||
} // line 223, address 0x4b138
|
||||
} // line 274, address 0x4b304
|
||||
/*
|
||||
* Offset 0x4B304
|
||||
* D:\driver2\game\C\EVENT.C (line 2999)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SpecialCamera(enum SpecialCamera type /*$t2*/, int change /*$a1*/)
|
||||
{ // line 1, address 0x4b304
|
||||
static int rememberCamera[3]; // address 0x230
|
||||
static short boatCamera[6] = { -1000, 2100, 6000, -5000, 3584, -5000 };
|
||||
{ // line 14, address 0x4b34c
|
||||
int *hackCamera; // $a2
|
||||
short *boat; // $t3
|
||||
} // line 115, address 0x4b5a8
|
||||
} // line 143, address 0x4b664
|
||||
/*
|
||||
* Offset 0x4B664
|
||||
* D:\driver2\game\C\EVENT.C (line 3152)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ DetonatorTimer()
|
||||
{ // line 2, address 0x4b664
|
||||
static struct SVECTOR rememberCameraAngle; // address 0x30
|
||||
{ // line 16, address 0x4b700
|
||||
{ // line 23, address 0x4b718
|
||||
static int count; // address 0x38
|
||||
{ // line 27, address 0x4b734
|
||||
struct VECTOR pos; // stack address -32
|
||||
} // line 32, address 0x4b768
|
||||
{ // line 36, address 0x4b788
|
||||
struct VECTOR pos; // stack address -32
|
||||
} // line 37, address 0x4b788
|
||||
} // line 52, address 0x4b830
|
||||
} // line 58, address 0x4b844
|
||||
{ // line 66, address 0x4b8cc
|
||||
struct _EVENT *ev; // $s0
|
||||
struct VECTOR pos; // stack address -32
|
||||
{ // line 95, address 0x4ba18
|
||||
struct VECTOR *epicentre; // $v1
|
||||
} // line 108, address 0x4ba70
|
||||
} // line 123, address 0x4baf4
|
||||
} // line 126, address 0x4bb18
|
||||
/*
|
||||
* Offset 0x4BB18
|
||||
* D:\driver2\game\C\EVENT.C (line 3288)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ MultiCarEvent(struct _TARGET *target /*$a0*/)
|
||||
{ // line 1, address 0x4bb18
|
||||
struct MULTICAR_DATA *data; // $s0
|
||||
int i; // $s1
|
||||
struct _EVENT *ev; // $s2
|
||||
{ // line 13, address 0x4bb60
|
||||
int n; // $a1
|
||||
} // line 15, address 0x4bb60
|
||||
} // line 25, address 0x4bc3c
|
||||
/*
|
||||
* Offset 0x4BC3C
|
||||
* D:\driver2\game\C\EVENT.C (line 483)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitEvents()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4BCB8
|
||||
* D:\driver2\game\C\EVENT.C (line 1107)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ EventCollisions(struct _CAR_DATA *cp /*$a2*/, int type /*$a1*/)
|
||||
{ // line 1, address 0x4bcb8
|
||||
static struct SVECTOR address; // address 0x18
|
||||
} // line 18, address 0x4bd94
|
||||
/*
|
||||
* Offset 0x4BD94
|
||||
* D:\driver2\game\C\EVENT.C (line 2994)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ OffsetTarget(struct VECTOR *target /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4BDD4
|
||||
* D:\driver2\game\C\EVENT.C (line 2684)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ MakeEventTrackable(struct _EVENT *ev /*$a0*/)
|
||||
{ // line 1, address 0x4bdd4
|
||||
struct _EVENT **p; // $v1
|
||||
} // line 10, address 0x4be08
|
||||
/*
|
||||
* Offset 0x4BE08
|
||||
* D:\driver2\game\C\EVENT.C (line 2527)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ OnBoat(struct VECTOR *pos /*$t1*/, struct _EVENT *ev /*$a1*/, int *dist /*$a2*/)
|
||||
{ // line 1, address 0x4be08
|
||||
int halfBoatWidth; // $t0
|
||||
int halfBoatLength; // $a0
|
||||
} // line 31, address 0x4be8c
|
||||
/*
|
||||
* Offset 0x4BE8C
|
||||
* D:\driver2\game\C\EVENT.C (line 2520)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ BoatOffset(struct SVECTOR *address /*$a0*/, struct _EVENT *ev /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4BEC4
|
||||
* D:\driver2\game\C\EVENT.C (line 402)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetElTrainRotation(struct _EVENT *ev /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4BF20
|
||||
* D:\driver2\game\C\EVENT.C (line 471)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitDoor(struct FixedEvent *ev /*$a0*/, struct _EVENT ***e /*$a1*/, int *cEvents /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4BFBC
|
||||
* D:\driver2\game\C\EVENT.C (line 974)
|
||||
* Stack frame base $sp, length 16
|
||||
* Saved registers at address -4: s0 s1 s2 s3
|
||||
*/
|
||||
void /*$ra*/ InitEventCamera()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4C07C
|
||||
* D:\driver2\game\C\EVENT.C (line 983)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ResetEventCamera()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4C10C
|
||||
* D:\driver2\game\C\EVENT.C (line 1127)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ NextNode(struct _EVENT *ev /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4C1C0
|
||||
* D:\driver2\game\C\EVENT.C (line 1452)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetBridgeRotation(int timer /*$a0*/)
|
||||
{ // line 1, address 0x4c1c0
|
||||
int angle; // $v1
|
||||
} // line 24, address 0x4c270
|
||||
/*
|
||||
* Offset 0x4C270
|
||||
* D:\driver2\game\C\EVENT.C (line 2696)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ TriggerDoor(struct FixedEvent *door /*$a3*/, int *stage /*$a1*/, int sound /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4C2E8
|
||||
* D:\driver2\game\C\EVENT.C (line 3144)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ScreenShake(int count /*$a0*/, struct SVECTOR *ang /*$s0*/)
|
||||
{ // line 1, address 0x4c2e8
|
||||
} // line 6, address 0x4c398
|
147
src/C/felony.c
Normal file
147
src/C/felony.c
Normal file
@ -0,0 +1,147 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
short initialOccurrenceDelay[12] = { 0x18, 0, 0, 0, 0, 0, 0, 0, 0x18, 0, 0x18, 0 };
|
||||
short initialReccurrenceDelay[12] = { 0x80, 0, 0x80, 0x40, 0x40, 0x20, 0x20, 0, 0x80, 0x100 };
|
||||
|
||||
FELONY_VALUE initialFelonyValue[12] =
|
||||
{
|
||||
{ 659, 0 },
|
||||
{ 659, 75 },
|
||||
{ 659, 0 },
|
||||
{ 659, 0 },
|
||||
{ 659, 659 },
|
||||
{ 1318, 659 },
|
||||
{ 659, 659 },
|
||||
{ 659, 25 },
|
||||
{ 659, 0 },
|
||||
{ 659, 0 },
|
||||
{ 659, 0 },
|
||||
{ 4096, 0 }
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x4C398
|
||||
* D:\driver2\game\C\FELONY.C (line 476)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ NoteFelony(struct FELONY_DATA *pFelonyData /*$a3*/, char type /*$s3*/, short scale /*$t0*/)
|
||||
{ // line 1, address 0x4c398
|
||||
int felonyTooLowForRoadblocks; // $s4
|
||||
{ // line 2, address 0x4c410
|
||||
struct FELONY_DELAY *pFelonyDelay; // $v1
|
||||
} // line 19, address 0x4c434
|
||||
{ // line 36, address 0x4c468
|
||||
int additionalFelonyPoints; // $a0
|
||||
} // line 52, address 0x4c57c
|
||||
{ // line 77, address 0x4c698
|
||||
char rnd; // $s1
|
||||
int dir; // $a3
|
||||
} // line 107, address 0x4c86c
|
||||
} // line 112, address 0x4c8fc
|
||||
/*
|
||||
* Offset 0x4C91C
|
||||
* D:\driver2\game\C\FELONY.C (line 597)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ AdjustFelony(struct FELONY_DATA *pFelonyData /*$a0*/)
|
||||
{ // line 1, address 0x4c91c
|
||||
{ // line 52, address 0x4cc50
|
||||
struct FELONY_DELAY *pFelonyDelay; // $v1
|
||||
} // line 61, address 0x4cc90
|
||||
} // line 62, address 0x4cc90
|
||||
/*
|
||||
* Offset 0x4CC90
|
||||
* D:\driver2\game\C\FELONY.C (line 668)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ CheckPlayerMiscFelonies()
|
||||
{ // line 2, address 0x4cc90
|
||||
struct FELONY_DATA *pFelonyData; // $s4
|
||||
struct DRIVER2_CURVE *cv; // $s5
|
||||
struct DRIVER2_STRAIGHT *st; // $s6
|
||||
struct _CAR_DATA *cp; // $s3
|
||||
struct VECTOR *carPos; // $s2
|
||||
int surfInd; // $s0
|
||||
{ // line 22, address 0x4cd28
|
||||
char i; // $a1
|
||||
{ // line 31, address 0x4cdcc
|
||||
struct DRIVER2_JUNCTION *jn; // $a2
|
||||
short exitId; // $s1
|
||||
} // line 47, address 0x4ce74
|
||||
} // line 48, address 0x4ce74
|
||||
{ // line 48, address 0x4ce74
|
||||
char goingWrongWay; // $s7
|
||||
int lane; // $s0
|
||||
int dx; // $v1
|
||||
int dz; // $a0
|
||||
{ // line 70, address 0x4d014
|
||||
} // line 80, address 0x4d140
|
||||
} // line 90, address 0x4d160
|
||||
{ // line 111, address 0x4d200
|
||||
int maxSpeed; // $a0
|
||||
int limit; // $v1
|
||||
} // line 137, address 0x4d2b8
|
||||
} // line 138, address 0x4d2b8
|
||||
/*
|
||||
* Offset 0x4D2E8
|
||||
* D:\driver2\game\C\FELONY.C (line 810)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitFelonySystem()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4D320
|
||||
* D:\driver2\game\C\FELONY.C (line 824)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ CarHitByPlayer(struct _CAR_DATA *victim /*$a0*/, int howHard /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4D3CC
|
||||
* D:\driver2\game\C\FELONY.C (line 413)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitFelonyDelayArray(struct FELONY_DELAY *pFelonyDelay /*$a0*/, short *pMaximum /*$a1*/, int count /*$a2*/)
|
||||
{ // line 1, address 0x4d3cc
|
||||
struct FELONY_DELAY *pCurrent; // $a0
|
||||
} // line 9, address 0x4d408
|
||||
/*
|
||||
* Offset 0x4D408
|
||||
* D:\driver2\game\C\FELONY.C (line 431)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ InitFelonyData(struct FELONY_DATA *pFelonyData /*$s0*/)
|
||||
{ // line 1, address 0x4d408
|
||||
{ // line 1, address 0x4d408
|
||||
struct FELONY_VALUE *pSrc; // $v1
|
||||
struct FELONY_VALUE *pDest; // $s0
|
||||
struct FELONY_VALUE *pEnd; // $a0
|
||||
} // line 14, address 0x4d488
|
||||
} // line 15, address 0x4d488
|
||||
/*
|
||||
* Offset 0x4D488
|
||||
* D:\driver2\game\C\FELONY.C (line 450)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetCarHeading(int direction /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x4D498
|
||||
* D:\driver2\game\C\FELONY.C (line 454)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
char /*$ra*/ GetCarDirectionOfTravel(struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0x4d498
|
||||
int direction; // $v0
|
||||
} // line 12, address 0x4d4e0
|
38
src/C/fmvplay.c
Normal file
38
src/C/fmvplay.c
Normal file
@ -0,0 +1,38 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x4D4E0
|
||||
* D:\driver2\game\C\FMVPLAY.C (line 23)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ ReInitSystem()
|
||||
{ // line 2, address 0x4d4e0
|
||||
} // line 25, address 0x4d580
|
||||
/*
|
||||
* Offset 0x4D580
|
||||
* D:\driver2\game\C\FMVPLAY.C (line 68)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ PlayFMV(unsigned char render /*$s0*/)
|
||||
{ // line 1, address 0x4d580
|
||||
struct RENDER_ARGS args; // stack address -40
|
||||
{ // line 7, address 0x4d5ac
|
||||
} // line 7, address 0x4d5ac
|
||||
{ // line 12, address 0x4d5d8
|
||||
} // line 13, address 0x4d5e0
|
||||
} // line 28, address 0x4d638
|
||||
/*
|
||||
* Offset 0x4D638
|
||||
* D:\driver2\game\C\FMVPLAY.C (line 107)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ PlayRender(struct RENDER_ARGS *args /*$s0*/)
|
||||
{ // line 1, address 0x4d638
|
||||
static unsigned long oldsp; // address 0x0
|
||||
{ // line 22, address 0x4d69c
|
||||
} // line 31, address 0x4d6e0
|
||||
} // line 34, address 0x4d6f8
|
513
src/C/gamesnd.c
Normal file
513
src/C/gamesnd.c
Normal file
@ -0,0 +1,513 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
void IdentifyZone(struct __envsound *ep, struct __envsoundinfo *E, int pl);
|
||||
void CalcEffPos(struct __envsound *ep, struct __envsoundinfo *E, int pl);
|
||||
void CalcEffPos2(struct __envsound *ep, struct __envsoundinfo *E, int pl);
|
||||
void UpdateEnvSnd(struct __envsound *ep, struct __envsoundinfo *E, int pl);
|
||||
|
||||
static envsoundfunc UpdateEnvSounds[] = {
|
||||
IdentifyZone,
|
||||
CalcEffPos,
|
||||
CalcEffPos2,
|
||||
UpdateEnvSnd
|
||||
};
|
||||
|
||||
GEAR_DESC geard[2][4] =
|
||||
{
|
||||
{
|
||||
{ 0, 0, 163, 144, 135 },
|
||||
{ 86, 133, 260, 90, 85 },
|
||||
{ 186, 233, 360, 60, 57 },
|
||||
{ 286, 326, 9999, 48, 45 }
|
||||
},
|
||||
{
|
||||
{ 0, 0, 50, 144, 135 },
|
||||
{ 43, 66, 100, 90, 85 },
|
||||
{ 93, 116, 150, 60, 57 },
|
||||
{ 143, 163, 9999, 48, 45 }
|
||||
}
|
||||
};
|
||||
|
||||
// XM song position
|
||||
int coptrackpos[8] = {
|
||||
0x10, 0xB, 7, 0x12, 0xC, 9, 8, 0xA,
|
||||
};
|
||||
|
||||
/*
|
||||
* Offset 0x4D6F8
|
||||
* D:\driver2\game\C\GAMESND.C (line 171)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ ResidentModelsBodge()
|
||||
{ // line 1, address 0x4d6f8
|
||||
int i; // $a1
|
||||
int j; // $a2
|
||||
} // line 12, address 0x4d7ec
|
||||
/*
|
||||
* Offset 0x4D7EC
|
||||
* D:\driver2\game\C\GAMESND.C (line 228)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ LoadLevelSFX(int missionNum /*$s1*/)
|
||||
{ // line 1, address 0x4d7ec
|
||||
char city_night_fx; // $s2
|
||||
int i; // $s0
|
||||
{ // line 38, address 0x4db40
|
||||
int mission; // $a1
|
||||
} // line 41, address 0x4dcd8
|
||||
} // line 67, address 0x4de98
|
||||
/*
|
||||
* Offset 0x4DE98
|
||||
* D:\driver2\game\C\GAMESND.C (line 305)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ StartGameSounds()
|
||||
{ // line 2, address 0x4de98
|
||||
struct VECTOR *cp; // $s2
|
||||
int i; // $s1
|
||||
{ // line 10, address 0x4defc
|
||||
int siren; // $a2
|
||||
int car_model; // $s0
|
||||
} // line 28, address 0x4e0e4
|
||||
} // line 59, address 0x4e1f0
|
||||
/*
|
||||
* Offset 0x4E1F0
|
||||
* D:\driver2\game\C\GAMESND.C (line 404)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned short /*$ra*/ GetEngineRevs(struct _CAR_DATA *cp /*$t2*/)
|
||||
{ // line 1, address 0x4e1f0
|
||||
int gear; // $a1
|
||||
int lastgear; // $a0
|
||||
int ws; // $a2
|
||||
int acc; // $t1
|
||||
int type; // $t0
|
||||
} // line 35, address 0x4e350
|
||||
/*
|
||||
* Offset 0x4E350
|
||||
* D:\driver2\game\C\GAMESND.C (line 458)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ ControlCarRevs(struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0x4e350
|
||||
unsigned short oldRevs; // $s2
|
||||
unsigned short desiredRevs; // $v1
|
||||
unsigned short newRevs; // $a0
|
||||
int acc; // $s3
|
||||
char spin; // $s4
|
||||
char player_id; // $s1
|
||||
{ // line 40, address 0x4e47c
|
||||
int revsmax; // $a3
|
||||
} // line 46, address 0x4e53c
|
||||
} // line 55, address 0x4e5c8
|
||||
/*
|
||||
* Offset 0x4E5C8
|
||||
* D:\driver2\game\C\GAMESND.C (line 595)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ControlSpeech(struct SPEECH_QUEUE *pSpeechQueue /*$s0*/)
|
||||
{ // line 1, address 0x4e5c8
|
||||
} // line 40, address 0x4e768
|
||||
/*
|
||||
* Offset 0x4E778
|
||||
* D:\driver2\game\C\GAMESND.C (line 721)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitDopplerSFX()
|
||||
{ // line 1, address 0x4e778
|
||||
int i; // $v1
|
||||
} // line 5, address 0x4e7f8
|
||||
/*
|
||||
* Offset 0x4E7F8
|
||||
* D:\driver2\game\C\GAMESND.C (line 734)
|
||||
* Stack frame base $sp, length 200
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DoDopplerSFX()
|
||||
{ // line 1, address 0x4e7f8
|
||||
int i; // $s1
|
||||
int j; // $s0
|
||||
int num_noisy_cars; // $s5
|
||||
unsigned long car_dist[20]; // stack address -176
|
||||
unsigned short indexlist[20]; // stack address -96
|
||||
struct _CAR_DATA *car_ptr; // $s2
|
||||
struct VECTOR *pp; // $a1
|
||||
unsigned long car_flags; // $s4
|
||||
char sirens; // stack address -56
|
||||
{ // line 91, address 0x4ed20
|
||||
int siren; // $v0
|
||||
} // line 108, address 0x4ee30
|
||||
{ // line 156, address 0x4f104
|
||||
int model; // $v1
|
||||
} // line 158, address 0x4f19c
|
||||
{ // line 175, address 0x4f224
|
||||
char old_idle; // $a1
|
||||
{ // line 180, address 0x4f2a8
|
||||
int model; // $v1
|
||||
} // line 190, address 0x4f37c
|
||||
} // line 195, address 0x4f3d0
|
||||
} // line 210, address 0x4f508
|
||||
/*
|
||||
* Offset 0x4F508
|
||||
* D:\driver2\game\C\GAMESND.C (line 946)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DoPoliceLoudhailer(int cars /*$s1*/, unsigned short *indexlist /*$s2*/, unsigned long *dist /*$s3*/)
|
||||
{ // line 1, address 0x4f508
|
||||
int i; // $t1
|
||||
int rnd; // $t0
|
||||
int time; // $s0
|
||||
{ // line 5, address 0x4f5c8
|
||||
struct _CAR_DATA *car_ptr; // $a3
|
||||
} // line 13, address 0x4f68c
|
||||
} // line 16, address 0x4f6b4
|
||||
/*
|
||||
* Offset 0x4F6D0
|
||||
* D:\driver2\game\C\GAMESND.C (line 975)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ CollisionSound(char player_id /*$s0*/, struct _CAR_DATA *cp /*$s5*/, int impact /*$s2*/, int car_car /*$s7*/)
|
||||
{ // line 1, address 0x4f6d0
|
||||
long *here; // $s3
|
||||
char chan; // $s1
|
||||
char crash; // $s6
|
||||
char length; // $s4
|
||||
{ // line 8, address 0x4f758
|
||||
unsigned long p0dst; // $a1
|
||||
unsigned long p1dst; // $a0
|
||||
} // line 9, address 0x4f758
|
||||
{ // line 18, address 0x4f7ec
|
||||
{ // line 25, address 0x4f900
|
||||
} // line 32, address 0x4f998
|
||||
} // line 36, address 0x4f9bc
|
||||
} // line 37, address 0x4f9bc
|
||||
/*
|
||||
* Offset 0x4F9EC
|
||||
* D:\driver2\game\C\GAMESND.C (line 1019)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ ExplosionSound(struct VECTOR *pos /*$s4*/, int type /*$s0*/)
|
||||
{ // line 1, address 0x4f9ec
|
||||
int bang; // $s5
|
||||
int pitch; // $t0
|
||||
int rnd; // $s3
|
||||
struct VECTOR P; // stack address -48
|
||||
int sc1; // $s2
|
||||
int sc2; // $s1
|
||||
} // line 29, address 0x4fbd8
|
||||
/*
|
||||
* Offset 0x4FBFC
|
||||
* D:\driver2\game\C\GAMESND.C (line 1052)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ JerichoSpeak()
|
||||
{ // line 1, address 0x4fbfc
|
||||
static unsigned int j_said; // address 0x0
|
||||
int rnd; // $a1
|
||||
} // line 8, address 0x4fcf8
|
||||
/*
|
||||
* Offset 0x4FCF8
|
||||
* D:\driver2\game\C\GAMESND.C (line 1103)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ SoundTasks()
|
||||
{ // line 1, address 0x4fcf8
|
||||
int i; // $s2
|
||||
struct _CAR_DATA *cp; // $s1
|
||||
} // line 80, address 0x5014c
|
||||
/*
|
||||
* Offset 0x5014C
|
||||
* D:\driver2\game\C\GAMESND.C (line 1195)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ InitMusic(int musicnum /*$s0*/)
|
||||
{ // line 1, address 0x5014c
|
||||
static char *music_pt; // address 0xc
|
||||
static char *sample_pt; // address 0x10
|
||||
static char xm_samples; // address 0x4
|
||||
int musicpos[3]; // stack address -32
|
||||
char *name; // $s1
|
||||
int sample_len; // $s0
|
||||
int music_len; // $t0
|
||||
{ // line 45, address 0x5020c
|
||||
} // line 52, address 0x50270
|
||||
} // line 61, address 0x502e4
|
||||
/*
|
||||
* Offset 0x502E4
|
||||
* D:\driver2\game\C\GAMESND.C (line 1350)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ Tunnels(struct __tunnelinfo *T /*$a0*/)
|
||||
{ // line 1, address 0x502e4
|
||||
int i; // $t2
|
||||
int verb; // $t4
|
||||
} // line 14, address 0x50468
|
||||
/*
|
||||
* Offset 0x50468
|
||||
* D:\driver2\game\C\GAMESND.C (line 1366)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ AddTunnels(int level /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x50C70
|
||||
* D:\driver2\game\C\GAMESND.C (line 1577)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ AddEnvSnd(int type /*$t4*/, char flags /*$a1*/, int bank /*$a2*/, int sample /*$a3*/, int vol /*stack 16*/, long px /*stack 20*/, long pz /*stack 24*/)
|
||||
{ // line 1, address 0x50c70
|
||||
void *data; // $a1
|
||||
struct __envsound *ep; // $t1
|
||||
struct __envsoundtags *T; // $t0
|
||||
long s; // $a1
|
||||
} // line 58, address 0x50e70
|
||||
/*
|
||||
* Offset 0x50E70
|
||||
* D:\driver2\game\C\GAMESND.C (line 1646)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ IdentifyZone(struct __envsound *ep /*$a3*/, struct __envsoundinfo *E /*stack 4*/, int pl /*$a2*/)
|
||||
{ // line 1, address 0x50e70
|
||||
int i; // $s7
|
||||
int j; // $fp
|
||||
int tmp[4]; // stack address -96
|
||||
float d; // $s0
|
||||
float _g[4]; // stack address -80
|
||||
struct __bitfield64 zones; // stack address -64
|
||||
} // line 58, address 0x51524
|
||||
/*
|
||||
* Offset 0x51524
|
||||
* D:\driver2\game\C\GAMESND.C (line 1706)
|
||||
* Stack frame base $sp, length 8
|
||||
* Saved registers at address -4: s0 s1
|
||||
*/
|
||||
void /*$ra*/ CalcEffPos(struct __envsound *ep /*$s1*/, struct __envsoundinfo *E /*$a1*/, int pl /*$a2*/)
|
||||
{ // line 1, address 0x51524
|
||||
int j; // $t5
|
||||
int me; // $t2
|
||||
} // line 36, address 0x51838
|
||||
/*
|
||||
* Offset 0x51838
|
||||
* D:\driver2\game\C\GAMESND.C (line 1744)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ CalcEffPos2(struct __envsound *ep /*stack 0*/, struct __envsoundinfo *E /*$s7*/, int pl /*$a2*/)
|
||||
{ // line 1, address 0x51838
|
||||
int j; // stack address -56
|
||||
int me; // $s5
|
||||
{ // line 12, address 0x51940
|
||||
} // line 12, address 0x51940
|
||||
} // line 66, address 0x51f74
|
||||
/*
|
||||
* Offset 0x51F74
|
||||
* D:\driver2\game\C\GAMESND.C (line 1812)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ UpdateEnvSnd(struct __envsound *ep /*stack 0*/, struct __envsoundinfo *E /*$s4*/, int pl /*stack 8*/)
|
||||
{ // line 1, address 0x51f74
|
||||
int i; // stack address -48
|
||||
} // line 29, address 0x521d0
|
||||
/*
|
||||
* Offset 0x521D0
|
||||
* D:\driver2\game\C\GAMESND.C (line 1545)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ SetEnvSndVol(int snd /*$a0*/, int vol /*$a1*/)
|
||||
{ // line 1, address 0x521d0
|
||||
int was; // $v0
|
||||
} // line 5, address 0x521f8
|
||||
/*
|
||||
* Offset 0x521F8
|
||||
* D:\driver2\game\C\GAMESND.C (line 665)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ CopSay(int phrase /*$s1*/, int direction /*$s2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x522F4
|
||||
* D:\driver2\game\C\GAMESND.C (line 562)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
char /*$ra*/ PlaySpeech(struct SPEECH_QUEUE *pSpeechQueue /*$a0*/, int sound /*$a1*/)
|
||||
{ // line 1, address 0x522f4
|
||||
char result; // $v0
|
||||
int i; // $a2
|
||||
} // line 21, address 0x52354
|
||||
/*
|
||||
* Offset 0x52354
|
||||
* D:\driver2\game\C\GAMESND.C (line 127)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CarHasSiren(int index /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x523F0
|
||||
* D:\driver2\game\C\GAMESND.C (line 1510)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitEnvSnd(int num_envsnds /*$a0*/)
|
||||
{ // line 1, address 0x523f0
|
||||
int i; // $v1
|
||||
int p; // $a1
|
||||
struct __envsoundtags *T; // $t1
|
||||
} // line 28, address 0x524a4
|
||||
/*
|
||||
* Offset 0x524A4
|
||||
* D:\driver2\game\C\GAMESND.C (line 1317)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitTunnels(char n /*$a0*/)
|
||||
{ // line 1, address 0x524a4
|
||||
struct __tunnelinfo *T; // $a1
|
||||
} // line 8, address 0x524c8
|
||||
/*
|
||||
* Offset 0x524C8
|
||||
* D:\driver2\game\C\GAMESND.C (line 98)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ LoadBankFromLump(int bank /*$s3*/, int lump /*$s2*/)
|
||||
{ // line 1, address 0x524c8
|
||||
static unsigned int blockLimit[73] = {0}; // address 0x10
|
||||
int length; // $s0
|
||||
char *name; // $s1
|
||||
} // line 21, address 0x52578
|
||||
/*
|
||||
* Offset 0x52578
|
||||
* D:\driver2\game\C\GAMESND.C (line 161)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ SpecialVehicleKludge(char vehicle2 /*$a0*/)
|
||||
{ // line 1, address 0x52578
|
||||
static char kludge_bank[4][3] = {
|
||||
{ 2, 18, 10 },
|
||||
{ 2, 17, 4 },
|
||||
{ 9, 11, 13 },
|
||||
{ 17, 11, 15 }
|
||||
}; // address 0x134
|
||||
} // line 8, address 0x525a8
|
||||
/*
|
||||
* Offset 0x525A8
|
||||
* D:\driver2\game\C\GAMESND.C (line 197)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ MapCarIndexToBank(int index /*$a1*/)
|
||||
{ // line 1, address 0x525a8
|
||||
int *RM; // $a2
|
||||
static char car_banks[4][9] = {
|
||||
{12, 4, 13, 5, 16, 9, 2, 16, 10},
|
||||
{10, 11, 7, 6, 17, 17, 2, 5, 4},
|
||||
{14, 3, 4, 6, 11, 9, 2, 17, 10},
|
||||
{8, 7, 13, 9, 2, 17, 17, 11, 16},
|
||||
};
|
||||
} // line 22, address 0x52660
|
||||
/*
|
||||
* Offset 0x52660
|
||||
* D:\driver2\game\C\GAMESND.C (line 515)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DoSpeech(int chan /*$a0*/, int sound /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x526BC
|
||||
* D:\driver2\game\C\GAMESND.C (line 587)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ InitSpeechQueue(struct SPEECH_QUEUE *pSpeechQueue /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x526FC
|
||||
* D:\driver2\game\C\GAMESND.C (line 677)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ BodSay(int phrase /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x52738
|
||||
* D:\driver2\game\C\GAMESND.C (line 686)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ MissionSay(int phrase /*$a0*/)
|
||||
{ // line 1, address 0x52738
|
||||
} // line 5, address 0x52764
|
||||
/*
|
||||
* Offset 0x52774
|
||||
* D:\driver2\game\C\GAMESND.C (line 700)
|
||||
* Stack frame base $sp, length 16
|
||||
*/
|
||||
long /*$ra*/ jsqrt(unsigned long a /*$a0*/)
|
||||
{ // line 1, address 0x52774
|
||||
long b1; // $a1
|
||||
long b0; // $v1
|
||||
} // line 13, address 0x52828
|
||||
/*
|
||||
* Offset 0x52828
|
||||
* D:\driver2\game\C\GAMESND.C (line 1085)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ FunkUpDaBGMTunez(int funk /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x528B0
|
||||
* D:\driver2\game\C\GAMESND.C (line 1331)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ AddTunnel(long x1 /*$t1*/, long y1 /*$a1*/, long z1 /*$a2*/, long x2 /*$a3*/, long y2 /*stack 16*/, long z2 /*stack 20*/)
|
||||
{ // line 1, address 0x528b0
|
||||
struct __tunnelinfo *T; // $t0
|
||||
} // line 13, address 0x52964
|
||||
/*
|
||||
* Offset 0x5296C
|
||||
* D:\driver2\game\C\GAMESND.C (line 1555)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetEnvSndPos(int snd /*$a0*/, long px /*$a1*/, long pz /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x529B0
|
||||
* D:\driver2\game\C\GAMESND.C (line 1852)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitLeadHorn()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x529BC
|
||||
* D:\driver2\game\C\GAMESND.C (line 1855)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ LeadHorn(struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0x529bc
|
||||
static unsigned int rnd; // address 0x8
|
||||
} // line 12, address 0x52a90
|
171
src/C/glaunch.c
Normal file
171
src/C/glaunch.c
Normal file
@ -0,0 +1,171 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
MISSION_STEP MissionLadder[68] =
|
||||
{
|
||||
{ 1, 0, 1, 0 },
|
||||
{ 1, 0, 2, 0 },
|
||||
{ 2, 0, 1, 0 },
|
||||
{ 2, 1, 2, 0 },
|
||||
{ 2, 1, 3, 0 },
|
||||
{ 1, 1, 3, 0 },
|
||||
{ 1, 1, 4, 0 },
|
||||
{ 2, 1, 4, 0 },
|
||||
{ 1, 2, 5, 0 },
|
||||
{ 2, 2, 5, 0 },
|
||||
{ 1, 3, 6, 0 },
|
||||
{ 2, 3, 6, 0 },
|
||||
{ 1, 4, 7, 0 },
|
||||
{ 2, 5, 7, 0 },
|
||||
{ 6, 5, 0, 0 },
|
||||
{ 2, 5, 9, 0 },
|
||||
{ 1, 5, 8, 0 },
|
||||
{ 1, 5, 9, 0 },
|
||||
{ 2, 6, 10, 0 },
|
||||
{ 1, 6, 10, 0 },
|
||||
{ 1, 6, 11, 0 },
|
||||
{ 2, 7, 11, 0 },
|
||||
{ 6, 7, 0, 0 },
|
||||
{ 2, 7, 13, 0 },
|
||||
{ 2, 7, 14, 0 },
|
||||
{ 1, 7, 12, 0 },
|
||||
{ 2, 8, 15, 0 },
|
||||
{ 2, 8, 16, 0 },
|
||||
{ 1, 8, 13, 0 },
|
||||
{ 2, 9, 17, 0 },
|
||||
{ 2, 9, 18, 0 },
|
||||
{ 1, 9, 14, 0 },
|
||||
{ 2, 10, 19, 0 },
|
||||
{ 1, 10, 15, 0 },
|
||||
{ 2, 11, 20, 0 },
|
||||
{ 1, 12, 16, 1 },
|
||||
{ 1, 12, 17, 1 },
|
||||
{ 2, 13, 21, 1 },
|
||||
{ 2, 13, 22, 1 },
|
||||
{ 2, 13, 23, 1 },
|
||||
{ 2, 13, 24, 1 },
|
||||
{ 1, 13, 18, 1 },
|
||||
{ 2, 14, 25, 1 },
|
||||
{ 2, 14, 26, 1 },
|
||||
{ 1, 14, 19, 1 },
|
||||
{ 2, 15, 27, 1 },
|
||||
{ 2, 15, 28, 1 },
|
||||
{ 2, 15, 29, 1 },
|
||||
{ 2, 15, 30, 1 },
|
||||
{ 1, 15, 20, 1 },
|
||||
{ 1, 15, 21, 1 },
|
||||
{ 2, 16, 31, 1 },
|
||||
{ 2, 16, 32, 1 },
|
||||
{ 2, 16, 33, 1 },
|
||||
{ 2, 16, 34, 1 },
|
||||
{ 1, 16, 22, 1 },
|
||||
{ 2, 17, 35, 1 },
|
||||
{ 6, 17, 0, 1 },
|
||||
{ 2, 17, 37, 1 },
|
||||
{ 1, 17, 23, 1 },
|
||||
{ 2, 18, 38, 1 },
|
||||
{ 2, 18, 39, 1 },
|
||||
{ 1, 18, 24, 1 },
|
||||
{ 2, 19, 40, 1 },
|
||||
{ 1, 19, 25, 1 },
|
||||
{ 1, 19, 26, 1 },
|
||||
{ 1, 19, 27, 1 },
|
||||
{ 4, 19, 28, 1 }
|
||||
};
|
||||
|
||||
unsigned short RecapFrameLength[19] = {
|
||||
0x203, 0x2FC, 0x3C2, 0x496, 0x56D, 0x616, 0x6D4, 0x70E, 0x800, 0x8CD, 0x99A, 0x430, 0x550, 0x5E3, 0x67B, 0x96D, 0xA17, 0xAC9, 0xBB6
|
||||
};
|
||||
|
||||
/*
|
||||
* Offset 0x52A90
|
||||
* D:\driver2\game\C\GLAUNCH.C (line 834)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ GameStart()
|
||||
{ // line 2, address 0x52a90
|
||||
struct RECT rect; // stack address -16
|
||||
int oldVMode; // $s0
|
||||
int SurvivalCopSettingsBackup; // $s0
|
||||
} // line 177, address 0x52f00
|
||||
/*
|
||||
* Offset 0x52F00
|
||||
* D:\driver2\game\C\GLAUNCH.C (line 1030)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ ReInitFrontend()
|
||||
{ // line 2, address 0x52f00
|
||||
struct RECT rect; // stack address -24
|
||||
} // line 73, address 0x53050
|
||||
/*
|
||||
* Offset 0x53050
|
||||
* D:\driver2\game\C\GLAUNCH.C (line 1105)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ RunMissionLadder(int newgame /*$a1*/)
|
||||
{ // line 1, address 0x53050
|
||||
struct MISSION_STEP *CurrentStep; // $s0
|
||||
struct RENDER_ARGS RenderArgs; // stack address -48
|
||||
int quit; // $s3
|
||||
{ // line 38, address 0x5310c
|
||||
} // line 38, address 0x5310c
|
||||
{ // line 43, address 0x5311c
|
||||
} // line 44, address 0x53124
|
||||
{ // line 48, address 0x53134
|
||||
} // line 52, address 0x53150
|
||||
{ // line 58, address 0x5319c
|
||||
{ // line 67, address 0x53200
|
||||
} // line 70, address 0x53214
|
||||
} // line 107, address 0x532f4
|
||||
} // line 110, address 0x53320
|
||||
/*
|
||||
* Offset 0x53320
|
||||
* D:\driver2\game\C\GLAUNCH.C (line 1279)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ LaunchGame()
|
||||
{ // line 2, address 0x53320
|
||||
struct RECT rect; // stack address -16
|
||||
int quit; // $s0
|
||||
} // line 136, address 0x53640
|
||||
/*
|
||||
* Offset 0x53640
|
||||
* D:\driver2\game\C\GLAUNCH.C (line 1222)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ GetRandomChase()
|
||||
{ // line 2, address 0x53640
|
||||
int bump; // $s1
|
||||
} // line 28, address 0x53704
|
||||
/*
|
||||
* Offset 0x53718
|
||||
* D:\driver2\game\C\GLAUNCH.C (line 1018)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ StartRender(int renderNum /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x53740
|
||||
* D:\driver2\game\C\GLAUNCH.C (line 1252)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ FindPrevMissionFromLadderPos(int pos /*$a0*/)
|
||||
{ // line 2, address 0x53740
|
||||
} // line 16, address 0x537a8
|
||||
/*
|
||||
* Offset 0x537A8
|
||||
* D:\driver2\game\C\GLAUNCH.C (line 1417)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ FindMissionLadderPos(int mission /*$a0*/)
|
||||
{ // line 1, address 0x537a8
|
||||
struct MISSION_STEP *step; // $a1
|
||||
int pos; // $a2
|
||||
} // line 40, address 0x5387c
|
380
src/C/handling.c
Normal file
380
src/C/handling.c
Normal file
@ -0,0 +1,380 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x53884
|
||||
* D:\driver2\game\C\HANDLING.C (line 998)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ InitCarPhysics(struct _CAR_DATA *cp /*$s0*/, long *startpos[4] /*$t0*/, int direction /*$a2*/)
|
||||
{ // line 1, address 0x53884
|
||||
int ty; // $v1
|
||||
int dz; // $s1
|
||||
int odz; // $a3
|
||||
{ // line 6, address 0x538f8
|
||||
unsigned long *dst; // $a1
|
||||
} // line 6, address 0x538f8
|
||||
} // line 42, address 0x53a50
|
||||
/*
|
||||
* Offset 0x53A50
|
||||
* D:\driver2\game\C\HANDLING.C (line 1055)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ TempBuildHandlingMatrix(struct _CAR_DATA *cp /*$s0*/, int init /*$a1*/)
|
||||
{ // line 1, address 0x53a50
|
||||
int ty; // $v1
|
||||
int dz; // $a3
|
||||
} // line 20, address 0x53b70
|
||||
/*
|
||||
* Offset 0x53B70
|
||||
* D:\driver2\game\C\HANDLING.C (line 1079)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ UpdateCarPoints(struct CAR_COSMETICS *carCos /*$a0*/)
|
||||
{ // line 1, address 0x53b70
|
||||
struct SVECTOR *groundCollPoints; // $a1
|
||||
struct SVECTOR *wheelPoints; // $a3
|
||||
int i; // $a2
|
||||
} // line 24, address 0x53c68
|
||||
/*
|
||||
* Offset 0x53C68
|
||||
* D:\driver2\game\C\HANDLING.C (line 1192)
|
||||
* Stack frame base $sp, length 272
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ GlobalTimeStep()
|
||||
{ // line 2, address 0x53c68
|
||||
int i; // $fp
|
||||
int RKstep; // stack address -84
|
||||
int subframe; // stack address -80
|
||||
struct _CAR_DATA *c0; // $s0
|
||||
static union RigidBodyState _tp[20]; // address 0x0
|
||||
static union RigidBodyState _d0[20]; // address 0x410
|
||||
static union RigidBodyState _d1[20]; // address 0x820
|
||||
{ // line 76, address 0x53cd4
|
||||
struct _CAR_DATA *c0; // $t2
|
||||
union RigidBodyState *st; // $t1
|
||||
{ // line 91, address 0x53d94
|
||||
int s; // $v0
|
||||
} // line 101, address 0x53df8
|
||||
{ // line 109, address 0x53e80
|
||||
long AV[4]; // stack address -248
|
||||
long delta_orientation[4]; // stack address -232
|
||||
} // line 129, address 0x54060
|
||||
} // line 130, address 0x54060
|
||||
{ // line 142, address 0x5408c
|
||||
union RigidBodyState *thisDelta; // stack address -76
|
||||
{ // line 148, address 0x540a0
|
||||
struct _CAR_DATA *c0; // $s4
|
||||
{ // line 156, address 0x540fc
|
||||
union RigidBodyState *thisState_i; // $s6
|
||||
int j; // stack address -72
|
||||
{ // line 1, address 0x54154
|
||||
union RigidBodyState *state; // $s6
|
||||
union RigidBodyState *delta; // $a3
|
||||
struct _CAR_DATA *cp; // $s4
|
||||
{ // line 1, address 0x54154
|
||||
long AV[4]; // stack address -248
|
||||
} // line 1, address 0x54154
|
||||
} // line 1, address 0x54154
|
||||
{ // line 175, address 0x54340
|
||||
struct _CAR_DATA *c1; // $s3
|
||||
union RigidBodyState *thisState_j; // $s0
|
||||
{ // line 183, address 0x543a8
|
||||
int strength; // $s5
|
||||
long centre0[4]; // stack address -248
|
||||
long centre1[4]; // stack address -232
|
||||
long normal[4]; // stack address -216
|
||||
long collisionpoint[4]; // stack address -200
|
||||
{ // line 186, address 0x543a8
|
||||
struct BOUND_BOX *bb1; // $a2
|
||||
struct BOUND_BOX *bb2; // $a0
|
||||
} // line 217, address 0x544a8
|
||||
{ // line 222, address 0x544a8
|
||||
int depth; // stack address -88
|
||||
} // line 227, address 0x544c8
|
||||
{ // line 227, address 0x544c8
|
||||
long lever0[4]; // stack address -184
|
||||
long lever1[4]; // stack address -168
|
||||
long torque[4]; // stack address -152
|
||||
long pointVel0[4]; // stack address -136
|
||||
long pointVel1[4]; // stack address -120
|
||||
int strikeVel; // stack address -68
|
||||
{ // line 227, address 0x544c8
|
||||
int is; // $v0
|
||||
int wanted; // $v1
|
||||
} // line 227, address 0x544c8
|
||||
{ // line 295, address 0x548d8
|
||||
struct VECTOR velocity; // stack address -104
|
||||
{ // line 314, address 0x5498c
|
||||
int debris1; // $s0
|
||||
int debris2; // $s2
|
||||
} // line 326, address 0x549e4
|
||||
} // line 327, address 0x549e4
|
||||
{ // line 334, address 0x54a24
|
||||
int do1; // $a0
|
||||
int do2; // $t5
|
||||
int m1; // $t3
|
||||
int m2; // $a1
|
||||
{ // line 356, address 0x54ab8
|
||||
long force[4]; // stack address -104
|
||||
int strength1; // $a0
|
||||
int twistY; // $t4
|
||||
} // line 385, address 0x54d08
|
||||
{ // line 389, address 0x54d10
|
||||
long force[4]; // stack address -104
|
||||
int strength2; // $a1
|
||||
int twistY; // $t2
|
||||
} // line 418, address 0x54f44
|
||||
} // line 419, address 0x54f44
|
||||
} // line 426, address 0x54fc0
|
||||
} // line 427, address 0x54fc0
|
||||
} // line 428, address 0x54fc0
|
||||
} // line 429, address 0x54fe4
|
||||
} // line 430, address 0x54fe4
|
||||
{ // line 434, address 0x5500c
|
||||
struct _CAR_DATA *c0; // $a1
|
||||
{ // line 438, address 0x5502c
|
||||
union RigidBodyState *st; // $t2
|
||||
union RigidBodyState *tp; // $a0
|
||||
union RigidBodyState *d0; // $a2
|
||||
union RigidBodyState *d1; // $v1
|
||||
int j; // $t1
|
||||
} // line 454, address 0x55118
|
||||
} // line 455, address 0x55118
|
||||
} // line 456, address 0x55130
|
||||
{ // line 460, address 0x5515c
|
||||
int carsDentedThisFrame; // $s2
|
||||
{ // line 463, address 0x5516c
|
||||
{ // line 464, address 0x5516c
|
||||
unsigned long *dst; // $a1
|
||||
} // line 464, address 0x5516c
|
||||
{ // line 478, address 0x551f0
|
||||
} // line 481, address 0x55200
|
||||
} // line 483, address 0x55200
|
||||
} // line 487, address 0x55254
|
||||
} // line 507, address 0x55254
|
||||
/*
|
||||
* Offset 0x55254
|
||||
* D:\driver2\game\C\HANDLING.C (line 1704)
|
||||
* Stack frame base $sp, length 120
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ SetShadowPoints(struct _CAR_DATA *c0 /*$s4*/)
|
||||
{ // line 1, address 0x55254
|
||||
int j; // $s2
|
||||
struct CAR_COSMETICS *car_cos; // $v1
|
||||
struct _sdPlane *surfacePtr; // stack address -48
|
||||
{ // line 14, address 0x55310
|
||||
struct SVECTOR disp; // stack address -104
|
||||
struct VECTOR pointPos; // stack address -96
|
||||
struct VECTOR surfaceNormal; // stack address -80
|
||||
struct VECTOR surfacePoint; // stack address -64
|
||||
} // line 35, address 0x553f0
|
||||
} // line 37, address 0x55434
|
||||
/*
|
||||
* Offset 0x55434
|
||||
* D:\driver2\game\C\HANDLING.C (line 1753)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ LongQuaternion2Matrix(long *qua[4] /*$a0*/, struct MATRIX *m /*$a1*/)
|
||||
{ // line 1, address 0x55434
|
||||
int xx; // $t3
|
||||
int xy; // $a3
|
||||
int xz; // $t2
|
||||
int xw; // $t0
|
||||
int yy; // $t7
|
||||
int yz; // $a2
|
||||
int yw; // $t5
|
||||
int zz; // $v1
|
||||
int zw; // $a0
|
||||
} // line 25, address 0x55558
|
||||
/*
|
||||
* Offset 0x55558
|
||||
* D:\driver2\game\C\HANDLING.C (line 1802)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ initOBox(struct _CAR_DATA *cp /*$a2*/)
|
||||
{ // line 1, address 0x55558
|
||||
struct SVECTOR *boxDisp; // $a0
|
||||
{ // line 1, address 0x55558
|
||||
int length; // $a1
|
||||
} // line 40, address 0x55748
|
||||
} // line 42, address 0x55748
|
||||
/*
|
||||
* Offset 0x55748
|
||||
* D:\driver2\game\C\HANDLING.C (line 1930)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ CheckCarToCarCollisions()
|
||||
{ // line 2, address 0x55748
|
||||
struct _CAR_DATA *cp; // $t2
|
||||
struct BOUND_BOX *bp; // $t1
|
||||
struct BOUND_BOX *bb1; // $t0
|
||||
struct BOUND_BOX *bb2; // $a1
|
||||
int lbod; // $v1
|
||||
int wbod; // $a0
|
||||
int hbod; // $t0
|
||||
struct SVECTOR *colBox; // $a1
|
||||
int loop1; // $t4
|
||||
int loop2; // $a3
|
||||
{ // line 17, address 0x55774
|
||||
int wx; // $v1
|
||||
int wz; // $a2
|
||||
} // line 52, address 0x55994
|
||||
} // line 84, address 0x55afc
|
||||
/*
|
||||
* Offset 0x55B04
|
||||
* D:\driver2\game\C\HANDLING.C (line 2027)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ ProcessCarPad(struct _CAR_DATA *cp /*$s0*/, unsigned long pad /*$s3*/, char PadSteer /*$s4*/, char use_analogue /*$s5*/)
|
||||
{ // line 1, address 0x55b04
|
||||
int player_id; // $s1
|
||||
{ // line 131, address 0x55d40
|
||||
int int_steer; // $v0
|
||||
int analog_angle; // $v1
|
||||
} // line 153, address 0x55df8
|
||||
{ // line 233, address 0x55f58
|
||||
int rws; // $v0
|
||||
} // line 243, address 0x55fe8
|
||||
{ // line 255, address 0x5604c
|
||||
int playerCar; // $v0
|
||||
int dist; // $a0
|
||||
int dx; // $a0
|
||||
int dz; // $v0
|
||||
} // line 272, address 0x560e8
|
||||
{ // line 276, address 0x560f8
|
||||
int targetCarId; // $v1
|
||||
{ // line 293, address 0x5613c
|
||||
struct _CAR_DATA *tp; // $a1
|
||||
int cx; // $v1
|
||||
int cz; // $v0
|
||||
int chase_square_dist; // $v0
|
||||
{ // line 300, address 0x56174
|
||||
int averagePower; // $a0
|
||||
} // line 302, address 0x561b0
|
||||
} // line 313, address 0x562c0
|
||||
} // line 315, address 0x562c0
|
||||
} // line 348, address 0x56314
|
||||
/*
|
||||
* Offset 0x56314
|
||||
* D:\driver2\game\C\HANDLING.C (line 2397)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ TerminateSkidding(int player_id /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x563B8
|
||||
* D:\driver2\game\C\HANDLING.C (line 2414)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ CheckCarEffects(struct _CAR_DATA *cp /*$s2*/, int player_id /*$s3*/)
|
||||
{ // line 1, address 0x563b8
|
||||
int skidsound; // $s1
|
||||
int cnt; // $a0
|
||||
int wheels_on_ground; // $s5
|
||||
char lay_down_tracks; // $s7
|
||||
char desired_skid; // $a1
|
||||
char desired_wheel; // $a1
|
||||
{ // line 86, address 0x56650
|
||||
int pitch; // $v0
|
||||
} // line 90, address 0x566ac
|
||||
{ // line 93, address 0x566c8
|
||||
int wnse; // $a0
|
||||
} // line 96, address 0x56710
|
||||
{ // line 119, address 0x56810
|
||||
int pitch; // $t0
|
||||
} // line 123, address 0x56878
|
||||
{ // line 132, address 0x568a8
|
||||
} // line 136, address 0x568d0
|
||||
} // line 146, address 0x56914
|
||||
/*
|
||||
* Offset 0x56940
|
||||
* D:\driver2\game\C\HANDLING.C (line 2575)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ jump_debris(struct _CAR_DATA *cp /*$s1*/)
|
||||
{ // line 1, address 0x56940
|
||||
int count; // $a1
|
||||
{ // line 24, address 0x569cc
|
||||
struct VECTOR position; // stack address -48
|
||||
struct VECTOR velocity; // stack address -32
|
||||
} // line 28, address 0x56a60
|
||||
} // line 29, address 0x56a60
|
||||
/*
|
||||
* Offset 0x56A74
|
||||
* D:\driver2\game\C\HANDLING.C (line 1875)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ StepCarPhysics(struct _CAR_DATA *cp /*$a2*/)
|
||||
{ // line 1, address 0x56a74
|
||||
struct _HANDLING_TYPE *hp; // $v0
|
||||
} // line 24, address 0x56acc
|
||||
/*
|
||||
* Offset 0x56AD4
|
||||
* D:\driver2\game\C\HANDLING.C (line 1911)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitialiseCarHandling()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x56ADC
|
||||
* D:\driver2\game\C\HANDLING.C (line 2607)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ nose_down(struct _CAR_DATA *cp /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x56B4C
|
||||
* D:\driver2\game\C\HANDLING.C (line 1854)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ RebuildCarMatrix(union RigidBodyState *st /*$a2*/, struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0x56b4c
|
||||
{ // line 1, address 0x56b4c
|
||||
int sm; // $v1
|
||||
{ // line 5, address 0x56bf4
|
||||
int osm; // $v0
|
||||
} // line 5, address 0x56c68
|
||||
} // line 5, address 0x56c68
|
||||
} // line 8, address 0x56c8c
|
||||
/*
|
||||
* Offset 0x56C8C
|
||||
* D:\driver2\game\C\HANDLING.C (line 1106)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ FixCarCos(struct CAR_COSMETICS *carCos /*$s0*/, int externalModelNumber /*$a1*/)
|
||||
{ // line 1, address 0x56c8c
|
||||
int current; // $v0
|
||||
} // line 24, address 0x56d20
|
||||
/*
|
||||
* Offset 0x56D20
|
||||
* D:\driver2\game\C\HANDLING.C (line 2389)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitSkidding()
|
||||
{ // line 1, address 0x56d20
|
||||
int i; // $a0
|
||||
} // line 6, address 0x56d54
|
||||
/*
|
||||
* Offset 0x56D54
|
||||
* D:\driver2\game\C\HANDLING.C (line 2664)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetPlayerId(struct _CAR_DATA *cp /*$a0*/)
|
||||
{ // line 1, address 0x56d54
|
||||
int i; // $a1
|
||||
int p_id; // $a3
|
||||
} // line 5, address 0x56dbc
|
114
src/C/job_fx.c
Normal file
114
src/C/job_fx.c
Normal file
@ -0,0 +1,114 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
MATRIX SS = {0};
|
||||
|
||||
/*
|
||||
* Offset 0x56DBC
|
||||
* D:\driver2\game\C\JOB_FX.C (line 129)
|
||||
* Stack frame base $sp, length 8
|
||||
* Saved registers at address -8: s0
|
||||
*/
|
||||
void /*$ra*/ AddExplosion(struct VECTOR pos /*stack 0*/, int type /*stack 16*/)
|
||||
{ // line 1, address 0x56dbc
|
||||
int i; // $t1
|
||||
} // line 40, address 0x56eac
|
||||
/*
|
||||
* Offset 0x56EAC
|
||||
* D:\driver2\game\C\JOB_FX.C (line 178)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ HandleExplosion()
|
||||
{ // line 2, address 0x56eac
|
||||
int i; // $s5
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
{ // line 34, address 0x56fb4
|
||||
} // line 42, address 0x56fec
|
||||
} // line 45, address 0x56ffc
|
||||
/*
|
||||
* Offset 0x57028
|
||||
* D:\driver2\game\C\JOB_FX.C (line 557)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ initExplosion()
|
||||
{ // line 2, address 0x57028
|
||||
int i; // $t0
|
||||
} // line 25, address 0x57310
|
||||
/*
|
||||
* Offset 0x57310
|
||||
* D:\driver2\game\C\JOB_FX.C (line 588)
|
||||
* Stack frame base $sp, length 152
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawExplosion(int time /*stack 0*/, struct VECTOR position /*stack 4*/, int hscale /*stack 20*/, int rscale /*stack 24*/)
|
||||
{ // line 1, address 0x57310
|
||||
int i; // $t1
|
||||
int j; // $s3
|
||||
struct POLY_FT4 *poly; // $a2
|
||||
struct SVECTOR *src; // $t0
|
||||
struct VECTOR v; // stack address -136
|
||||
int rgb; // $s0
|
||||
int z; // stack address -56
|
||||
int sf1; // $t0
|
||||
int sf2; // $a0
|
||||
unsigned long u0; // $s2
|
||||
unsigned long u1; // $s1
|
||||
unsigned long u2; // $s5
|
||||
unsigned long u3; // $s4
|
||||
{ // line 1, address 0x57310
|
||||
int transparency; // $t2
|
||||
int green; // $t1
|
||||
int blue; // $v1
|
||||
} // line 1, address 0x57310
|
||||
{ // line 43, address 0x57458
|
||||
struct MATRIX workmatrix; // stack address -120
|
||||
int sf; // $v0
|
||||
int s; // $v1
|
||||
int c; // $a3
|
||||
} // line 50, address 0x574ac
|
||||
{ // line 97, address 0x57788
|
||||
int transparency; // $a0
|
||||
int red; // $a1
|
||||
int green; // $a2
|
||||
int blue; // $v1
|
||||
} // line 97, address 0x57788
|
||||
{ // line 110, address 0x5780c
|
||||
struct MATRIX workmatrix; // stack address -88
|
||||
int sf; // $v0
|
||||
int s; // $v1
|
||||
int c; // $a3
|
||||
} // line 119, address 0x57860
|
||||
} // line 167, address 0x57b74
|
||||
/*
|
||||
* Offset 0x57B74
|
||||
* D:\driver2\game\C\JOB_FX.C (line 110)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitExObjects()
|
||||
{ // line 2, address 0x57b74
|
||||
int i; // $v1
|
||||
} // line 11, address 0x57bb8
|
||||
/*
|
||||
* Offset 0x57BB8
|
||||
* D:\driver2\game\C\JOB_FX.C (line 232)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ DrawAllExplosions()
|
||||
{ // line 2, address 0x57bb8
|
||||
int i; // $s1
|
||||
{ // line 8, address 0x57bfc
|
||||
int hscale; // $v1
|
||||
int rscale; // $a0
|
||||
} // line 12, address 0x57c28
|
||||
} // line 14, address 0x57c58
|
||||
/*
|
||||
* Offset 0xE70A0
|
||||
* D:\driver2\game\C\LEADAI.C (line 205)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ leadRand()
|
||||
{
|
||||
}
|
500
src/C/leadai.c
Normal file
500
src/C/leadai.c
Normal file
@ -0,0 +1,500 @@
|
||||
|
||||
// LEAD.BIN code...
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0xE7128
|
||||
* D:\driver2\game\C\LEADAI.C (line 278)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ InitLead(struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0xe7128
|
||||
{ // line 41, address 0xe71a0
|
||||
struct DRIVER2_STRAIGHT *straight; // $a3
|
||||
struct DRIVER2_CURVE *curve; // $t0
|
||||
int i; // $a2
|
||||
int dx; // $a0
|
||||
int dz; // $a1
|
||||
int sqrdist; // $v1
|
||||
int min; // $t1
|
||||
} // line 74, address 0xe7310
|
||||
} // line 100, address 0xe73e8
|
||||
/*
|
||||
* Offset 0xE73E8
|
||||
* D:\driver2\game\C\LEADAI.C (line 382)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ LeadUpdateState(struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0xe73e8
|
||||
int dif; // $t0
|
||||
int avel; // $s1
|
||||
{ // line 17, address 0xe7498
|
||||
struct VECTOR tmpStart; // stack address -48
|
||||
} // line 30, address 0xe74ec
|
||||
{ // line 124, address 0xe7768
|
||||
int dist; // $t1
|
||||
} // line 153, address 0xe792c
|
||||
{ // line 160, address 0xe7938
|
||||
struct VECTOR pos; // stack address -32
|
||||
} // line 175, address 0xe7980
|
||||
} // line 182, address 0xe7980
|
||||
/*
|
||||
* Offset 0xE7994
|
||||
* D:\driver2\game\C\LEADAI.C (line 566)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
unsigned long /*$ra*/ LeadPadResponse(struct _CAR_DATA *cp /*$t0*/)
|
||||
{ // line 1, address 0xe7994
|
||||
int dif; // $t2
|
||||
int avel; // $t1
|
||||
unsigned long t0; // $s0
|
||||
{ // line 34, address 0xe7a4c
|
||||
} // line 60, address 0xe7b18
|
||||
{ // line 95, address 0xe7bc8
|
||||
int deltaVel; // $a1
|
||||
int deltaAVel; // $a3
|
||||
int deltaPos; // $a0
|
||||
int deltaTh; // $t2
|
||||
int steerDelta; // $a0
|
||||
} // line 122, address 0xe7d50
|
||||
{ // line 128, address 0xe7d58
|
||||
int diff; // $a0
|
||||
} // line 141, address 0xe7dd4
|
||||
} // line 149, address 0xe7de8
|
||||
/*
|
||||
* Offset 0xE7DE8
|
||||
* D:\driver2\game\C\LEADAI.C (line 718)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ FakeMotion(struct _CAR_DATA *cp /*$s1*/)
|
||||
{ // line 1, address 0xe7de8
|
||||
{ // line 6, address 0xe7e40
|
||||
struct DRIVER2_STRAIGHT *straight; // $t1
|
||||
static int d; // address 0x0
|
||||
static int toGo; // address 0x4
|
||||
static int angle; // address 0x8
|
||||
static int s; // address 0xc
|
||||
static int c; // address 0x10
|
||||
int dx; // $a2
|
||||
int dz; // $t3
|
||||
int nextJunction; // $t0
|
||||
{ // line 39, address 0xe7fa4
|
||||
struct DRIVER2_JUNCTION *junction; // $s0
|
||||
} // line 39, address 0xe7fa4
|
||||
} // line 60, address 0xe8010
|
||||
{ // line 63, address 0xe8010
|
||||
struct DRIVER2_CURVE *curve; // $s0
|
||||
int angle; // $a3
|
||||
int toGo; // $v0
|
||||
int radius; // $a2
|
||||
int dx; // $a0
|
||||
int dz; // $a1
|
||||
int nextJunction; // $a2
|
||||
{ // line 95, address 0xe8104
|
||||
struct DRIVER2_JUNCTION *junction; // $s0
|
||||
} // line 95, address 0xe8104
|
||||
{ // line 130, address 0xe81f0
|
||||
struct DRIVER2_JUNCTION *junction; // $s0
|
||||
} // line 130, address 0xe81f0
|
||||
} // line 156, address 0xe82e0
|
||||
{ // line 159, address 0xe82e0
|
||||
struct DRIVER2_JUNCTION *junction; // $s0
|
||||
} // line 167, address 0xe8338
|
||||
} // line 170, address 0xe8338
|
||||
/*
|
||||
* Offset 0xE834C
|
||||
* D:\driver2\game\C\LEADAI.C (line 932)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ PosToIndex(int *normal /*$t1*/, int *tangent /*$t4*/, int intention /*$a2*/, struct _CAR_DATA *cp /*$a3*/)
|
||||
{ // line 1, address 0xe834c
|
||||
{ // line 18, address 0xe8398
|
||||
int dist; // $a1
|
||||
} // line 26, address 0xe8420
|
||||
{ // line 38, address 0xe84b0
|
||||
int w; // $t2
|
||||
int w80; // $t0
|
||||
int t; // $a1
|
||||
int t80; // $a3
|
||||
{ // line 47, address 0xe85f0
|
||||
int temp; // $v1
|
||||
} // line 47, address 0xe85f0
|
||||
{ // line 54, address 0xe8614
|
||||
int temp; // $a0
|
||||
} // line 56, address 0xe8614
|
||||
{ // line 66, address 0xe865c
|
||||
} // line 70, address 0xe8690
|
||||
} // line 113, address 0xe86b4
|
||||
} // line 116, address 0xe86b4
|
||||
/*
|
||||
* Offset 0xE86BC
|
||||
* D:\driver2\game\C\LEADAI.C (line 1053)
|
||||
* Stack frame base $sp, length 128
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ BlockToMap(struct MAP_DATA *data /*$s3*/)
|
||||
{ // line 1, address 0xe86bc
|
||||
static int carLength; // address 0x14
|
||||
static int carWidth; // address 0x18
|
||||
static int length; // address 0x14
|
||||
static int width; // address 0x18
|
||||
static int left; // address 0x1c
|
||||
static int right; // address 0x20
|
||||
static int ldist; // address 0x24
|
||||
static int rdist; // address 0x28
|
||||
static struct MAP_DATA newdata; // address 0x30
|
||||
{ // line 21, address 0xe873c
|
||||
int dx; // $t4
|
||||
int dz; // $t3
|
||||
int v; // $v1
|
||||
int tangent; // $s0
|
||||
int normal; // $s1
|
||||
} // line 108, address 0xe8ab0
|
||||
{ // line 113, address 0xe8ab0
|
||||
struct DRIVER2_CURVE *curve; // $s1
|
||||
int dx; // $s6
|
||||
int dz; // $s5
|
||||
int v; // $a0
|
||||
int angle; // $a2
|
||||
int s; // $s4
|
||||
int c; // $s2
|
||||
int tangent; // $s0
|
||||
int normal; // $s1
|
||||
} // line 211, address 0xe8e48
|
||||
{ // line 218, address 0xe8e48
|
||||
int dx; // $s0
|
||||
int dz; // $s2
|
||||
int angle; // $s5
|
||||
int s; // $t3
|
||||
int c; // $t2
|
||||
int tangent; // $s1
|
||||
int normal; // $s0
|
||||
int i; // $s2
|
||||
{ // line 248, address 0xe8f7c
|
||||
int corners[4][3]; // stack address -112
|
||||
int diff; // $v0
|
||||
int overlap; // $s1
|
||||
int quad1; // $a1
|
||||
int quad2; // $v1
|
||||
{ // line 297, address 0xe9184
|
||||
int temp; // $v1
|
||||
} // line 301, address 0xe91b0
|
||||
{ // line 310, address 0xe921c
|
||||
int vx; // $a1
|
||||
int vz; // $t0
|
||||
int theta; // $v0
|
||||
} // line 328, address 0xe9324
|
||||
} // line 329, address 0xe9324
|
||||
{ // line 334, address 0xe9350
|
||||
int temp; // $a0
|
||||
} // line 354, address 0xe93f0
|
||||
} // line 358, address 0xe93f0
|
||||
{ // line 372, address 0xe9424
|
||||
int *nearest; // $s2
|
||||
int *furthest; // $s4
|
||||
int *ndist; // $s1
|
||||
int *fdist; // $s0
|
||||
{ // line 390, address 0xe94a4
|
||||
int temp; // stack address -64
|
||||
int tdist; // stack address -60
|
||||
} // line 414, address 0xe9560
|
||||
} // line 415, address 0xe9560
|
||||
{ // line 429, address 0xe95a0
|
||||
int locall; // stack address -56
|
||||
int localr; // stack address -48
|
||||
int localld; // stack address -52
|
||||
int localrd; // stack address -44
|
||||
{ // line 439, address 0xe9614
|
||||
int i; // $a2
|
||||
} // line 446, address 0xe9664
|
||||
{ // line 446, address 0xe9664
|
||||
int i; // $a0
|
||||
} // line 459, address 0xe96ec
|
||||
} // line 460, address 0xe96ec
|
||||
{ // line 469, address 0xe9734
|
||||
int tangent; // $a2
|
||||
int i; // $a1
|
||||
} // line 480, address 0xe97b0
|
||||
{ // line 493, address 0xe97b0
|
||||
int dtan; // $a3
|
||||
int tangent; // $a2
|
||||
int i; // $a1
|
||||
} // line 505, address 0xe9874
|
||||
} // line 507, address 0xe9874
|
||||
/*
|
||||
* Offset 0xE98A4
|
||||
* D:\driver2\game\C\LEADAI.C (line 1563)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
int /*$ra*/ IsOnMap(int x /*$t0*/, int z /*$a1*/, struct VECTOR *basePos /*$a2*/, int intention /*$s4*/, struct _CAR_DATA *cp /*stack 16*/)
|
||||
{ // line 1, address 0xe98a4
|
||||
int dx; // $s1
|
||||
int dz; // $s2
|
||||
{ // line 14, address 0xe9938
|
||||
int tangent; // stack address -44
|
||||
int normal; // stack address -48
|
||||
} // line 28, address 0xe99f4
|
||||
{ // line 33, address 0xe99f4
|
||||
struct DRIVER2_CURVE *curve; // $s0
|
||||
int tangent; // stack address -36
|
||||
int normal; // stack address -40
|
||||
} // line 59, address 0xe9b20
|
||||
{ // line 65, address 0xe9b20
|
||||
int tangent; // stack address -28
|
||||
int normal; // stack address -32
|
||||
} // line 79, address 0xe9b94
|
||||
} // line 87, address 0xe9bb8
|
||||
/*
|
||||
* Offset 0xE9BB8
|
||||
* D:\driver2\game\C\LEADAI.C (line 1657)
|
||||
* Stack frame base $sp, length 368
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ UpdateRoadPosition(struct _CAR_DATA *cp /*$s3*/, struct VECTOR *basePos /*stack 4*/, int intention /*stack 8*/)
|
||||
{ // line 1, address 0xe9bb8
|
||||
int sindex; // $t0
|
||||
int i; // $s0
|
||||
int di; // $a2
|
||||
struct _CAR_DATA *lcp; // $s0
|
||||
int laneAvoid; // stack address -56
|
||||
{ // line 23, address 0xe9c4c
|
||||
int cell_x; // $s4
|
||||
int x1; // $a0
|
||||
{ // line 36, address 0xe9cb0
|
||||
int cell_z; // $s0
|
||||
int z1; // $s1
|
||||
{ // line 43, address 0xe9cfc
|
||||
int cbrx; // $a3
|
||||
int cbrz; // $a2
|
||||
int cbr; // $a0
|
||||
{ // line 57, address 0xe9d94
|
||||
struct CELL_OBJECT *cop; // $s1
|
||||
struct CELL_ITERATOR ci; // stack address -344
|
||||
{ // line 64, address 0xe9db0
|
||||
struct COLLISION_PACKET *collide; // $s0
|
||||
struct MODEL *model; // $a0
|
||||
int num_cb; // $a0
|
||||
int box_loop; // $s2
|
||||
{ // line 82, address 0xe9e4c
|
||||
struct MATRIX *mat; // $a1
|
||||
struct VECTOR address; // stack address -320
|
||||
struct VECTOR vel; // stack address -304
|
||||
struct VECTOR length; // stack address -288
|
||||
struct MAP_DATA data; // stack address -272
|
||||
{ // line 96, address 0xe9ef8
|
||||
int sb; // $t0
|
||||
int cb; // $a1
|
||||
int theta; // $v1
|
||||
int xsize; // $a0
|
||||
int zsize; // $a3
|
||||
} // line 110, address 0xe9fd8
|
||||
} // line 118, address 0xe9fd8
|
||||
} // line 138, address 0xea068
|
||||
} // line 140, address 0xea088
|
||||
} // line 141, address 0xea088
|
||||
} // line 142, address 0xea098
|
||||
} // line 143, address 0xea0ac
|
||||
{ // line 157, address 0xea0cc
|
||||
struct SVECTOR *colBox; // $a3
|
||||
struct VECTOR pos; // stack address -344
|
||||
struct VECTOR vel; // stack address -328
|
||||
struct VECTOR length; // stack address -312
|
||||
struct MAP_DATA data; // stack address -296
|
||||
} // line 188, address 0xea260
|
||||
{ // line 203, address 0xea2f4
|
||||
int left; // $a3
|
||||
int right; // $a2
|
||||
} // line 232, address 0xea3d8
|
||||
{ // line 247, address 0xea410
|
||||
int smallest; // $s1
|
||||
} // line 266, address 0xea4e0
|
||||
{ // line 274, address 0xea4ec
|
||||
int tmpMap[41]; // stack address -240
|
||||
{ // line 280, address 0xea528
|
||||
int count; // $t0
|
||||
int j; // $a1
|
||||
} // line 287, address 0xea594
|
||||
} // line 289, address 0xea5c4
|
||||
{ // line 349, address 0xea8ac
|
||||
int i; // stack address -68
|
||||
int penalty; // $a2
|
||||
int left; // stack address -72
|
||||
int right; // stack address -64
|
||||
int centre; // stack address -60
|
||||
} // line 389, address 0xeaaa0
|
||||
{ // line 412, address 0xead80
|
||||
int biggest; // $a3
|
||||
{ // line 433, address 0xeaeac
|
||||
} // line 433, address 0xeaeac
|
||||
} // line 442, address 0xeaee0
|
||||
{ // line 446, address 0xeaee0
|
||||
int biggest; // $a1
|
||||
} // line 456, address 0xeaf4c
|
||||
{ // line 477, address 0xeaffc
|
||||
int smallForward; // $a1
|
||||
int smallBack; // $v0
|
||||
} // line 494, address 0xeb060
|
||||
{ // line 569, address 0xeb0c4
|
||||
struct _CAR_DATA *cp; // $s3
|
||||
int sindex; // $a0
|
||||
int intention; // stack address 8
|
||||
} // line 569, address 0xeb1cc
|
||||
} // line 582, address 0xeb1cc
|
||||
/*
|
||||
* Offset 0xEB1FC
|
||||
* D:\driver2\game\C\LEADAI.C (line 2242)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ CheckCurrentRoad(struct _CAR_DATA *cp /*$s3*/)
|
||||
{ // line 1, address 0xeb1fc
|
||||
static int heading; // address 0x1c
|
||||
int cr; // $s5
|
||||
static int jdist; // address 0x20
|
||||
static int nextJunction; // address 0x50
|
||||
static struct VECTOR basePosition; // address 0x60
|
||||
int checkNext; // $s6
|
||||
{ // line 36, address 0xeb300
|
||||
struct DRIVER2_STRAIGHT *straight; // $t3
|
||||
static int d; // address 0x70
|
||||
static int toGo; // address 0x74
|
||||
static int angle; // address 0x78
|
||||
static int s; // address 0x7c
|
||||
static int c; // address 0x80
|
||||
int dx; // $t5
|
||||
int dz; // $t6
|
||||
} // line 77, address 0xeb578
|
||||
{ // line 86, address 0xeb5c4
|
||||
struct DRIVER2_CURVE *curve; // $s2
|
||||
static int angle; // address 0x84
|
||||
static int radius; // address 0x88
|
||||
static int dx; // address 0x8c
|
||||
static int dz; // address 0x90
|
||||
static int fixedThresh; // address 0x94
|
||||
} // line 144, address 0xeb8f8
|
||||
{ // line 173, address 0xeb974
|
||||
static int diff; // address 0x98
|
||||
{ // line 178, address 0xeb98c
|
||||
struct DRIVER2_JUNCTION *junction; // $s0
|
||||
} // line 186, address 0xeb9d4
|
||||
{ // line 198, address 0xeba14
|
||||
struct DRIVER2_STRAIGHT *straight; // $v1
|
||||
} // line 204, address 0xeba5c
|
||||
{ // line 207, address 0xeba5c
|
||||
struct DRIVER2_CURVE *curve; // $v1
|
||||
static int dx; // address 0x9c
|
||||
static int dz; // address 0xa0
|
||||
} // line 218, address 0xebae8
|
||||
{ // line 233, address 0xebb2c
|
||||
struct DRIVER2_STRAIGHT *straight; // $t1
|
||||
static int dx; // address 0xa4
|
||||
static int dz; // address 0xa8
|
||||
static int dist; // address 0xac
|
||||
static int offx; // address 0xb0
|
||||
static int offz; // address 0xb4
|
||||
} // line 233, address 0xebb2c
|
||||
{ // line 262, address 0xebc5c
|
||||
struct DRIVER2_CURVE *curve; // $s4
|
||||
static int angle; // address 0xb8
|
||||
int radius; // $s2
|
||||
static int dx; // address 0xbc
|
||||
static int dz; // address 0xc0
|
||||
static int basex; // address 0xc4
|
||||
static int basez; // address 0xc8
|
||||
static int dist; // address 0xcc
|
||||
static int offx; // address 0xd0
|
||||
static int offz; // address 0xd4
|
||||
} // line 302, address 0xebe44
|
||||
} // line 352, address 0xebfd0
|
||||
{ // line 387, address 0xec158
|
||||
} // line 388, address 0xec158
|
||||
} // line 399, address 0xec194
|
||||
/*
|
||||
* Offset 0xEC1C4
|
||||
* D:\driver2\game\C\LEADAI.C (line 2644)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ SetTarget(struct _CAR_DATA *cp /*$s1*/, int cr /*$a0*/, int heading /*$s4*/, int *nextJunction /*$s3*/)
|
||||
{ // line 1, address 0xec1c4
|
||||
{ // line 13, address 0xec1fc
|
||||
static int dx; // address 0xd8
|
||||
static int dz; // address 0xdc
|
||||
} // line 24, address 0xec278
|
||||
{ // line 31, address 0xec298
|
||||
struct DRIVER2_STRAIGHT *straight; // $t5
|
||||
int dx; // $a1
|
||||
int dz; // $a0
|
||||
int rx; // $v1
|
||||
int rz; // $a2
|
||||
int ux; // $t0
|
||||
int uz; // $t4
|
||||
int d; // $v1
|
||||
int angle; // $v0
|
||||
int mul; // $v1
|
||||
} // line 51, address 0xec33c
|
||||
{ // line 76, address 0xec444
|
||||
struct DRIVER2_CURVE *curve; // $s0
|
||||
int angle; // $a1
|
||||
int radius; // $a2
|
||||
} // line 110, address 0xec5c4
|
||||
} // line 116, address 0xec5c4
|
||||
/*
|
||||
* Offset 0xEC5E4
|
||||
* D:\driver2\game\C\LEADAI.C (line 2763)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ SelectExit(struct _CAR_DATA *cp /*$s3*/, struct DRIVER2_JUNCTION *junction /*$a3*/)
|
||||
{ // line 1, address 0xec5e4
|
||||
int onward; // $s1
|
||||
int numExits; // $s2
|
||||
int el[4][2]; // stack address -56
|
||||
int tmp; // $a1
|
||||
int i; // $a2
|
||||
int total; // $s0
|
||||
{ // line 18, address 0xec6f4
|
||||
} // line 25, address 0xec71c
|
||||
{ // line 29, address 0xec79c
|
||||
} // line 36, address 0xec7c8
|
||||
{ // line 40, address 0xec844
|
||||
} // line 47, address 0xec870
|
||||
} // line 80, address 0xec99c
|
||||
/*
|
||||
* Offset 0xEC99C
|
||||
* D:\driver2\game\C\LEADAI.C (line 2848)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
unsigned long /*$ra*/ FreeRoamer(struct _CAR_DATA *cp /*$s1*/)
|
||||
{ // line 1, address 0xec99c
|
||||
{ // line 117, address 0xeca4c
|
||||
struct _CAR_DATA *pCar; // $v0
|
||||
{ // line 117, address 0xeca4c
|
||||
int seed; // $a0
|
||||
{ // line 117, address 0xeca4c
|
||||
int i; // $s0
|
||||
} // line 118, address 0xecb04
|
||||
} // line 118, address 0xecb04
|
||||
} // line 119, address 0xecb04
|
||||
} // line 123, address 0xecb28
|
||||
/*
|
||||
* Offset 0xECB28
|
||||
* D:\driver2\game\C\LEADAI.C (line 2993)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
unsigned long /*$ra*/ hypot(long x /*$s1*/, long y /*$a1*/)
|
||||
{ // line 1, address 0xecb28
|
||||
{ // line 4, address 0xecb5c
|
||||
long t; // $v0
|
||||
} // line 4, address 0xecb64
|
||||
{ // line 8, address 0xecbb4
|
||||
} // line 13, address 0xecbe8
|
||||
} // line 14, address 0xecbe8
|
86
src/C/loadsave.c
Normal file
86
src/C/loadsave.c
Normal file
@ -0,0 +1,86 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x57C58
|
||||
* D:\driver2\game\C\LOADSAVE.C (line 109)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ SaveConfigData(char *buffer /*$a0*/)
|
||||
{ // line 1, address 0x57c58
|
||||
struct CONFIG_SAVE_HEADER *header; // $s0
|
||||
int i; // $t0
|
||||
} // line 29, address 0x57e58
|
||||
/*
|
||||
* Offset 0x57E58
|
||||
* D:\driver2\game\C\LOADSAVE.C (line 140)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ LoadConfigData(char *buffer /*$a0*/)
|
||||
{ // line 1, address 0x57e58
|
||||
struct CONFIG_SAVE_HEADER *header; // $t3
|
||||
int i; // $t4
|
||||
} // line 28, address 0x5803c
|
||||
/*
|
||||
* Offset 0x5803C
|
||||
* D:\driver2\game\C\LOADSAVE.C (line 37)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ CalcReplayDataSize()
|
||||
{ // line 2, address 0x5803c
|
||||
} // line 9, address 0x5805c
|
||||
/*
|
||||
* Offset 0x5805C
|
||||
* D:\driver2\game\C\LOADSAVE.C (line 48)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ SaveReplayData(char *buffer /*$a0*/)
|
||||
{ // line 2, address 0x5805c
|
||||
} // line 6, address 0x5807c
|
||||
/*
|
||||
* Offset 0x5807C
|
||||
* D:\driver2\game\C\LOADSAVE.C (line 56)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ LoadReplayData(char *buffer /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x5809C
|
||||
* D:\driver2\game\C\LOADSAVE.C (line 62)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CalcGameDataSize()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x580A4
|
||||
* D:\driver2\game\C\LOADSAVE.C (line 69)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ SaveGameData(char *buffer /*$s0*/)
|
||||
{ // line 1, address 0x580a4
|
||||
} // line 14, address 0x58134
|
||||
/*
|
||||
* Offset 0x58134
|
||||
* D:\driver2\game\C\LOADSAVE.C (line 85)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ LoadGameData(char *buffer /*$a0*/)
|
||||
{ // line 1, address 0x58134
|
||||
struct GAME_SAVE_HEADER *header; // $a0
|
||||
} // line 14, address 0x581cc
|
||||
/*
|
||||
* Offset 0x581CC
|
||||
* D:\driver2\game\C\LOADSAVE.C (line 102)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CalcConfigDataSize()
|
||||
{
|
||||
}
|
94
src/C/loadview.c
Normal file
94
src/C/loadview.c
Normal file
@ -0,0 +1,94 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x581D4
|
||||
* D:\driver2\game\C\LOADVIEW.C (line 200)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ ShowLoading()
|
||||
{ // line 2, address 0x581d4
|
||||
struct POLY_G4 poly; // stack address -56
|
||||
int col; // $s0
|
||||
} // line 36, address 0x58300
|
||||
/*
|
||||
* Offset 0x58314
|
||||
* D:\driver2\game\C\LOADVIEW.C (line 268)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ FadeGameScreen(int flag /*$t0*/, int speed /*$t1*/)
|
||||
{ // line 1, address 0x58314
|
||||
static struct POLY_F4 poly; // address 0x0
|
||||
static struct POLY_FT4 p; // address 0x20
|
||||
int do_fade; // $v0
|
||||
{ // line 23, address 0x58354
|
||||
int val; // $a3
|
||||
} // line 42, address 0x58430
|
||||
} // line 47, address 0x5845c
|
||||
/*
|
||||
* Offset 0x5845C
|
||||
* D:\driver2\game\C\LOADVIEW.C (line 327)
|
||||
* Stack frame base $sp, length 288
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ ShowLoadingScreen(char *screen_name /*$fp*/, int effect /*$s7*/, int loading_steps /*$a2*/)
|
||||
{ // line 1, address 0x5845c
|
||||
int fcount; // $s0
|
||||
int j; // $s2
|
||||
int done; // $fp
|
||||
struct RECT dest; // stack address -264
|
||||
struct SPRT prims[4]; // stack address -256
|
||||
struct POLY_FT3 nulls[4]; // stack address -176
|
||||
int fade; // $s5
|
||||
int fade_step; // stack address -48
|
||||
} // line 142, address 0x587fc
|
||||
/*
|
||||
* Offset 0x587FC
|
||||
* D:\driver2\game\C\LOADVIEW.C (line 527)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetupFadePolys()
|
||||
{ // line 3, address 0x587fc
|
||||
int i; // $a1
|
||||
} // line 22, address 0x5888c
|
||||
/*
|
||||
* Offset 0x5888C
|
||||
* D:\driver2\game\C\LOADVIEW.C (line 556)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ DrawFadePoly()
|
||||
{ // line 2, address 0x5888c
|
||||
struct POLY_G4 *fl_g4; // $a2
|
||||
} // line 21, address 0x58a18
|
||||
/*
|
||||
* Offset 0x58A18
|
||||
* D:\driver2\game\C\LOADVIEW.C (line 248)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetupScreenFade(int start /*$a0*/, int end /*$a1*/, int speed /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x58A38
|
||||
* D:\driver2\game\C\LOADVIEW.C (line 482)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ CloseShutters(int speed /*$s5*/, int width /*$s1*/, int height /*$s4*/)
|
||||
{ // line 1, address 0x58a38
|
||||
struct POLY_F4 poly[2]; // stack address -80
|
||||
int h; // $s0
|
||||
int done; // $s2
|
||||
} // line 31, address 0x58b70
|
||||
/*
|
||||
* Offset 0x58B70
|
||||
* D:\driver2\game\C\LOADVIEW.C (line 585)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DisplayMissionTitle()
|
||||
{ // line 2, address 0x58b70
|
||||
{ // line 17, address 0x58bf0
|
||||
} // line 21, address 0x58c20
|
||||
} // line 37, address 0x58c70
|
262
src/C/map.c
Normal file
262
src/C/map.c
Normal file
@ -0,0 +1,262 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x5C88C
|
||||
* D:\driver2\game\C\MAP.C (line 438)
|
||||
* Stack frame base $sp, length 120
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ CheckUnpackNewRegions()
|
||||
{ // line 2, address 0x5c88c
|
||||
struct AREA_LOAD_INFO regions_to_unpack[3]; // stack address -104
|
||||
int leftright_unpack; // $a1
|
||||
int topbottom_unpack; // $a2
|
||||
int num_regions_to_unpack; // $s5
|
||||
int x; // $a2
|
||||
int z; // $v1
|
||||
int loop; // $s6
|
||||
int barrel_region; // $s1
|
||||
int sortcount; // $s4
|
||||
int i; // $v1
|
||||
int j; // $a2
|
||||
struct SVECTOR sortregions[4]; // stack address -80
|
||||
unsigned short sortorder[4]; // stack address -48
|
||||
int force_load_boundary; // $a0
|
||||
{ // line 101, address 0x5ca5c
|
||||
int region_to_unpack; // $s0
|
||||
struct Spool *spoolptr; // $a1
|
||||
{ // line 121, address 0x5cadc
|
||||
} // line 141, address 0x5cb68
|
||||
} // line 142, address 0x5cb68
|
||||
{ // line 146, address 0x5cb90
|
||||
} // line 156, address 0x5cbfc
|
||||
} // line 160, address 0x5cc68
|
||||
/*
|
||||
* Offset 0x5CC68
|
||||
* D:\driver2\game\C\MAP.C (line 612)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ControlMap()
|
||||
{ // line 2, address 0x5cc68
|
||||
int x; // $a2
|
||||
int z; // $a1
|
||||
{ // line 27, address 0x5cd4c
|
||||
} // line 28, address 0x5cd54
|
||||
{ // line 36, address 0x5cd78
|
||||
} // line 37, address 0x5cd88
|
||||
} // line 42, address 0x5cde8
|
||||
/*
|
||||
* Offset 0x5CDE8
|
||||
* D:\driver2\game\C\MAP.C (line 677)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ InitMap()
|
||||
{ // line 2, address 0x5cde8
|
||||
int i; // $s0
|
||||
int tpage; // $v0
|
||||
char result[8]; // stack address -24
|
||||
{ // line 30, address 0x5ce98
|
||||
{ // line 39, address 0x5cef0
|
||||
int region; // $a3
|
||||
int barrel_region; // $a1
|
||||
struct Spool *spoolptr; // $v1
|
||||
{ // line 49, address 0x5cf5c
|
||||
} // line 55, address 0x5cf88
|
||||
} // line 56, address 0x5cf88
|
||||
} // line 65, address 0x5cff8
|
||||
{ // line 1, address 0x5cff8
|
||||
} // line 1, address 0x5d010
|
||||
} // line 67, address 0x5d010
|
||||
/*
|
||||
* Offset 0x5D010
|
||||
* D:\driver2\game\C\MAP.C (line 824)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ PVSDecode(char *output /*$s2*/, char *celldata /*$s3*/, unsigned short sz /*$s0*/, int havanaCorruptCellBodge /*$s4*/)
|
||||
{ // line 1, address 0x5d010
|
||||
char *decodeBuf; // $s1
|
||||
{ // line 1, address 0x5d010
|
||||
int pixelIndex; // $t0
|
||||
int i; // $a0
|
||||
int ni; // $a3
|
||||
//0x8EC spod
|
||||
{ // line 11, address 0x5d05c
|
||||
} // line 11, address 0x5d05c
|
||||
{ // line 18, address 0x5d0a4
|
||||
int symIndex; // $a2
|
||||
int sym; // $a0
|
||||
{ // line 1, address 0x5d110
|
||||
unsigned char *pt; // $v0
|
||||
} // line 1, address 0x5d110
|
||||
{ // line 1, address 0x5d124
|
||||
unsigned char *pt; // $v0
|
||||
} // line 1, address 0x5d124
|
||||
} // line 45, address 0x5d16c
|
||||
} // line 48, address 0x5d178
|
||||
{ // line 49, address 0x5d178
|
||||
int i; // $a2
|
||||
int j; // $v1
|
||||
int sz; // $a3
|
||||
char *op; // $a1
|
||||
} // line 80, address 0x5d24c
|
||||
{ // line 82, address 0x5d24c
|
||||
int i; // $v1
|
||||
} // line 87, address 0x5d28c
|
||||
} // line 89, address 0x5d28c
|
||||
/*
|
||||
* Offset 0x5D28C
|
||||
* D:\driver2\game\C\MAP.C (line 928)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ GetPVSRegionCell2(int source_region /*$a0*/, int region /*$a1*/, int cell /*$t2*/, char *output /*$a3*/)
|
||||
{ // line 1, address 0x5d28c
|
||||
char *bp; // $a2
|
||||
char *tbp; // $a1
|
||||
int j; // $v1
|
||||
unsigned short length; // $t0
|
||||
{ // line 17, address 0x5d304
|
||||
unsigned char *pt; // $a0
|
||||
} // line 17, address 0x5d304
|
||||
{ // line 17, address 0x5d304
|
||||
} // line 17, address 0x5d304
|
||||
{ // line 1, address 0x5d394
|
||||
char *output; // $a0
|
||||
{ // line 1, address 0x5d394
|
||||
int k; // $v1
|
||||
} // line 1, address 0x5d3c4
|
||||
} // line 1, address 0x5d3c4
|
||||
} // line 35, address 0x5d3c4
|
||||
/*
|
||||
* Offset 0x5D3D4
|
||||
* D:\driver2\game\C\MAP.C (line 311)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitCellData()
|
||||
{ // line 2, address 0x5d3d4
|
||||
char *alloclist; // $a2
|
||||
int loop; // $v1
|
||||
} // line 49, address 0x5d474
|
||||
/*
|
||||
* Offset 0x5D474
|
||||
* D:\driver2\game\C\MAP.C (line 289)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
struct MODEL * /*$ra*/ FindModelPtrWithName(char *name /*$s4*/)
|
||||
{ // line 1, address 0x5d474
|
||||
int dummy; // stack address -32
|
||||
{ // line 1, address 0x5d474
|
||||
char *name; // $s4
|
||||
int *num; // $s2
|
||||
{ // line 1, address 0x5d474
|
||||
int count; // $s1
|
||||
char *temp; // $s0
|
||||
} // line 1, address 0x5d50c
|
||||
} // line 1, address 0x5d50c
|
||||
} // line 4, address 0x5d52c
|
||||
/*
|
||||
* Offset 0x5D52C
|
||||
* D:\driver2\game\C\MAP.C (line 295)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
int /*$ra*/ FindModelIdxWithName(char *name /*$s3*/)
|
||||
{ // line 1, address 0x5d52c
|
||||
int i; // stack address -32
|
||||
{ // line 1, address 0x5d52c
|
||||
char *name; // $s3
|
||||
int *num; // $s2
|
||||
{ // line 1, address 0x5d52c
|
||||
int count; // $s1
|
||||
char *temp; // $s0
|
||||
} // line 1, address 0x5d5a8
|
||||
} // line 1, address 0x5d5a8
|
||||
} // line 5, address 0x5d5c8
|
||||
/*
|
||||
* Offset 0x5D5C8
|
||||
* D:\driver2\game\C\MAP.C (line 400)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ PositionVisible(struct VECTOR *pos /*$a0*/)
|
||||
{ // line 1, address 0x5d5c8
|
||||
int dx; // $a1
|
||||
int dz; // $a0
|
||||
int cellx; // $v1
|
||||
int cellz; // $v0
|
||||
} // line 20, address 0x5d684
|
||||
/*
|
||||
* Offset 0x5D684
|
||||
* D:\driver2\game\C\MAP.C (line 378)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ newPositionVisible(struct VECTOR *pos /*$a0*/, char *pvs /*$a1*/, int ccx /*$a2*/, int ccz /*$a3*/)
|
||||
{ // line 1, address 0x5d684
|
||||
int dx; // $a2
|
||||
int dz; // $a0
|
||||
int cellx; // $v1
|
||||
int cellz; // $v0
|
||||
} // line 20, address 0x5d72c
|
||||
/*
|
||||
* Offset 0x5D72C
|
||||
* D:\driver2\game\C\MAP.C (line 252)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ProcessRoadsLump(char *lump_file /*$a0*/, int lump_size /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x5D734
|
||||
* D:\driver2\game\C\MAP.C (line 247)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ProcessJunctionsLump(char *lump_file /*$a0*/, int lump_size /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x5D73C
|
||||
* D:\driver2\game\C\MAP.C (line 253)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ProcessRoadBoundsLump(char *lump_file /*$a0*/, int lump_size /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x5D744
|
||||
* D:\driver2\game\C\MAP.C (line 254)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ProcessJuncBoundsLump(char *lump_file /*$a0*/, int lump_size /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x5D74C
|
||||
* D:\driver2\game\C\MAP.C (line 756)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ GetVisSetAtPosition(struct VECTOR *pos /*$a0*/, char *tgt /*$t3*/, int *ccx /*$a1*/, int *ccz /*$a3*/)
|
||||
{ // line 1, address 0x5d74c
|
||||
int x; // $t2
|
||||
int z; // $t1
|
||||
int cx; // $t0
|
||||
int cz; // $a2
|
||||
int rx; // $a3
|
||||
int rz; // $a0
|
||||
{ // line 11, address 0x5d7d4
|
||||
int barrel_region_x; // $v0
|
||||
int barrel_region_z; // $a0
|
||||
} // line 22, address 0x5d824
|
||||
} // line 23, address 0x5d824
|
||||
/*
|
||||
* Offset 0x5D824
|
||||
* D:\driver2\game\C\MAP.C (line 237)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ NewProcessRoadMapLump(struct ROAD_MAP_LUMP_DATA *pRoadMapLumpData /*$s0*/, char *pLumpFile /*$s1*/)
|
||||
{ // line 1, address 0x5d824
|
||||
} // line 6, address 0x5d87c
|
222
src/C/mc_snd.c
Normal file
222
src/C/mc_snd.c
Normal file
@ -0,0 +1,222 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
char missionstarts[42] = {
|
||||
0xFF, 0xFF, 0, 2, 4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
6, 8, 0xFF, 9, 0xFF, 0xC, 0xD, 0xFF, 0xE, 0xFF, 0x13,
|
||||
0x14, 0xFF, 0x15, 0x18, 0x1A, 0xFF, 0x1C, 0xFF, 0x1E,
|
||||
0x21, 0xFF, 0x25, 0x27, 0xFF, 0x29, 0xFF, 0xFF, 0xFF,
|
||||
0x2E, 0x30, 0x31
|
||||
};
|
||||
|
||||
io id_map[49] =
|
||||
{
|
||||
{0, 0},
|
||||
{0, 1},
|
||||
{2, 0},
|
||||
{3, 1},
|
||||
{4, 0},
|
||||
{5, 1},
|
||||
{4, 0},
|
||||
{5, 1},
|
||||
{11, 0},
|
||||
{12, 0},
|
||||
{12, 1},
|
||||
{11, 2},
|
||||
{14, 0},
|
||||
{14, 0},
|
||||
{15, 0},
|
||||
{16, 1},
|
||||
{16, 2},
|
||||
{18, 3},
|
||||
{18, 4},
|
||||
{11, 0},
|
||||
{11, 0},
|
||||
{20, 0},
|
||||
{12, 1},
|
||||
{13, 2},
|
||||
{21, 0},
|
||||
{31, 1},
|
||||
{31, 0},
|
||||
{11, 1},
|
||||
{23, 0},
|
||||
{24, 1},
|
||||
{26, 0},
|
||||
{27, 1},
|
||||
{28, 2},
|
||||
{34, 0},
|
||||
{29, 1},
|
||||
{29, 2},
|
||||
{20, 3},
|
||||
{31, 0},
|
||||
{11, 1},
|
||||
{31, 0},
|
||||
{33, 1},
|
||||
{34, 0},
|
||||
{36, 1},
|
||||
{29, 2},
|
||||
{29, 3},
|
||||
{20, 4},
|
||||
{37, 0},
|
||||
{38, 1},
|
||||
{39, 0},
|
||||
};
|
||||
|
||||
xa_request xa_data[26] = {
|
||||
{0x10, 0, 0, 1, 0},
|
||||
{0x19, 0, 1, 2, 0},
|
||||
{0x1E, 0, 2, 3, 0},
|
||||
{0x26, 0, 3, 4, 0},
|
||||
{0x10, 0, 4, 9, 0},
|
||||
{0x82, 0, 5, 0xA, 0},
|
||||
{0x5A, 0, 6, 0xD, 0},
|
||||
{0x10, 0, 7, 0xE, 0},
|
||||
{0x280, 1, 0, 0x12, 1},
|
||||
{0x10, 1, 1, 0x16, 0},
|
||||
{0x1C2, 1, 2, 0x17, 0},
|
||||
{0x10, 1, 3, 0x19, 0},
|
||||
{0x10, 1, 4, 0x1A, 0},
|
||||
{0x14, 1, 5, 0x1B, 0},
|
||||
{0x28, 1, 6, 0x1C, 0},
|
||||
{0x15E, 1, 7, 0x1D, 1},
|
||||
{0x10, 2, 0, 0x1D, 0},
|
||||
{0x10, 2, 1, 0x1E, 0},
|
||||
{0x96, 2, 2, 0x1F, 0},
|
||||
{0x10, 2, 3, 0x20, 0},
|
||||
{0x10, 2, 4, 0x22, 0},
|
||||
{0x19, 2, 5, 0x23, 0},
|
||||
{0x10, 2, 6, 0x25, 0},
|
||||
{0x10, 2, 7, 0x27, 0},
|
||||
{0x2EE, 3, 0, 0x21, 1},
|
||||
{0, 0, 0, 0xFF, 0},
|
||||
};
|
||||
|
||||
/*
|
||||
* Offset 0x5D87C
|
||||
* D:\driver2\game\C\MC_SND.C (line 88)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
char /*$ra*/ GetMissionSound(char id /*$s1*/)
|
||||
{ // line 1, address 0x5d87c
|
||||
char c; // $s0
|
||||
char start; // $s2
|
||||
char end; // $a0
|
||||
char rnd; // $t1
|
||||
} // line 18, address 0x5d9b8
|
||||
/*
|
||||
* Offset 0x5D9B8
|
||||
* D:\driver2\game\C\MC_SND.C (line 187)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DoCutsceneSound()
|
||||
{ // line 1, address 0x5d9b8
|
||||
{ // line 4, address 0x5da04
|
||||
{ // line 37, address 0x5daf0
|
||||
{ // line 39, address 0x5db18
|
||||
long *here; // $t0
|
||||
} // line 41, address 0x5db54
|
||||
} // line 42, address 0x5db54
|
||||
{ // line 57, address 0x5dc04
|
||||
{ // line 58, address 0x5dc14
|
||||
struct _CAR_DATA *you; // $s0
|
||||
} // line 61, address 0x5dc58
|
||||
} // line 63, address 0x5dc84
|
||||
} // line 82, address 0x5dd68
|
||||
} // line 84, address 0x5dd78
|
||||
/*
|
||||
* Offset 0x5DD78
|
||||
* D:\driver2\game\C\MC_SND.C (line 279)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ InitializeMissionSound()
|
||||
{ // line 1, address 0x5dd78
|
||||
int i; // $a1
|
||||
} // line 29, address 0x5e088
|
||||
/*
|
||||
* Offset 0x5E088
|
||||
* D:\driver2\game\C\MC_SND.C (line 321)
|
||||
* Stack frame base $sp, length 128
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ DoMissionSound()
|
||||
{ // line 1, address 0x5e088
|
||||
int i; // $a2
|
||||
{ // line 79, address 0x5e24c
|
||||
long *pos; // $s5
|
||||
long *vel; // $s4
|
||||
{ // line 83, address 0x5e2c4
|
||||
int chan; // $s1
|
||||
} // line 83, address 0x5e2c4
|
||||
} // line 83, address 0x5e2c4
|
||||
{ // line 154, address 0x5e3b0
|
||||
struct VECTOR Q[3]; // stack address -96
|
||||
struct VECTOR P; // stack address -48
|
||||
} // line 157, address 0x5e478
|
||||
{ // line 159, address 0x5e48c
|
||||
int i; // $s0
|
||||
} // line 163, address 0x5e620
|
||||
{ // line 202, address 0x5e758
|
||||
struct VECTOR Q[3]; // stack address -96
|
||||
struct VECTOR P; // stack address -48
|
||||
} // line 205, address 0x5e820
|
||||
{ // line 207, address 0x5e834
|
||||
int i; // $s0
|
||||
} // line 211, address 0x5e9d0
|
||||
{ // line 236, address 0x5eadc
|
||||
long V[3]; // stack address -96
|
||||
long *C; // $a1
|
||||
} // line 245, address 0x5ec00
|
||||
} // line 307, address 0x5ee68
|
||||
/*
|
||||
* Offset 0x5EE68
|
||||
* D:\driver2\game\C\MC_SND.C (line 652)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
char /*$ra*/ SilenceThisCar(int car /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x5F194
|
||||
* D:\driver2\game\C\MC_SND.C (line 145)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ RequestXA()
|
||||
{ // line 1, address 0x5f194
|
||||
} // line 12, address 0x5f21c
|
||||
/*
|
||||
* Offset 0x5F21C
|
||||
* D:\driver2\game\C\MC_SND.C (line 164)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ HandleRequestedXA()
|
||||
{ // line 2, address 0x5f21c
|
||||
} // line 6, address 0x5f28c
|
||||
/*
|
||||
* Offset 0x5F28C
|
||||
* D:\driver2\game\C\MC_SND.C (line 176)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitializeCutsceneSound(int cutscene /*$a0*/)
|
||||
{ // line 1, address 0x5f28c
|
||||
int i; // $a0
|
||||
} // line 5, address 0x5f2c4
|
||||
/*
|
||||
* Offset 0x5F2C4
|
||||
* D:\driver2\game\C\MC_SND.C (line 636)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetMSoundVar(int var /*$a0*/, struct VECTOR *V /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x5F2FC
|
||||
* D:\driver2\game\C\MC_SND.C (line 749)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ AdjustPlayerCarVolume()
|
||||
{
|
||||
}
|
130
src/C/mdraw.c
Normal file
130
src/C/mdraw.c
Normal file
@ -0,0 +1,130 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x5F364
|
||||
* D:\driver2\game\C\MDRAW.C (line 58)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ DrawMission()
|
||||
{ // line 2, address 0x5f364
|
||||
{ // line 10, address 0x5f3f8
|
||||
char *string; // $s1
|
||||
} // line 27, address 0x5f480
|
||||
} // line 66, address 0x5f5bc
|
||||
/*
|
||||
* Offset 0x5F5D4
|
||||
* D:\driver2\game\C\MDRAW.C (line 312)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ DrawWorldTarget(struct _TARGET *target /*$s0*/)
|
||||
{ // line 1, address 0x5f5d4
|
||||
struct VECTOR tv; // stack address -32
|
||||
int slot; // $v1
|
||||
int flags; // $s1
|
||||
} // line 105, address 0x5f8b8
|
||||
/*
|
||||
* Offset 0x5F8CC
|
||||
* D:\driver2\game\C\MDRAW.C (line 419)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DrawMultiplayerTarget(struct _TARGET *target /*$s0*/)
|
||||
{ // line 1, address 0x5f8cc
|
||||
struct VECTOR tv; // stack address -40
|
||||
unsigned char r; // $s3
|
||||
unsigned char g; // $s2
|
||||
unsigned char b; // $s1
|
||||
} // line 98, address 0x5fad4
|
||||
/*
|
||||
* Offset 0x5FAF0
|
||||
* D:\driver2\game\C\MDRAW.C (line 126)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ DrawTimer(struct MR_TIMER *timer /*$s1*/)
|
||||
{ // line 1, address 0x5faf0
|
||||
char string[16]; // stack address -32
|
||||
} // line 27, address 0x5fbd0
|
||||
/*
|
||||
* Offset 0x5FBE4
|
||||
* D:\driver2\game\C\MDRAW.C (line 155)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DisplayPlayerPosition()
|
||||
{ // line 2, address 0x5fbe4
|
||||
char string[32]; // stack address -40
|
||||
} // line 6, address 0x5fc2c
|
||||
/*
|
||||
* Offset 0x5FC2C
|
||||
* D:\driver2\game\C\MDRAW.C (line 163)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ DrawMessage(int y /*$s1*/, char *string /*$s0*/)
|
||||
{ // line 1, address 0x5fc2c
|
||||
{ // line 4, address 0x5fc48
|
||||
} // line 13, address 0x5fc90
|
||||
} // line 14, address 0x5fca4
|
||||
/*
|
||||
* Offset 0x5FCA4
|
||||
* D:\driver2\game\C\MDRAW.C (line 179)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DrawWorldTargets()
|
||||
{ // line 2, address 0x5fca4
|
||||
int i; // $s0
|
||||
} // line 9, address 0x5fce4
|
||||
/*
|
||||
* Offset 0x5FCF4
|
||||
* D:\driver2\game\C\MDRAW.C (line 190)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DrawOverheadTargets()
|
||||
{ // line 2, address 0x5fcf4
|
||||
int i; // $s0
|
||||
} // line 9, address 0x5fd34
|
||||
/*
|
||||
* Offset 0x5FD44
|
||||
* D:\driver2\game\C\MDRAW.C (line 201)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DrawFullscreenTargets()
|
||||
{ // line 2, address 0x5fd44
|
||||
int i; // $s0
|
||||
} // line 9, address 0x5fd84
|
||||
/*
|
||||
* Offset 0x5FD94
|
||||
* D:\driver2\game\C\MDRAW.C (line 212)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DrawMultiplayerTargets()
|
||||
{ // line 2, address 0x5fd94
|
||||
int i; // $s0
|
||||
} // line 9, address 0x5fdd4
|
||||
/*
|
||||
* Offset 0x5FDE4
|
||||
* D:\driver2\game\C\MDRAW.C (line 230)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DrawOverheadTarget(struct _TARGET *target /*$s0*/)
|
||||
{ // line 1, address 0x5fde4
|
||||
struct VECTOR tv; // stack address -24
|
||||
} // line 39, address 0x5feec
|
||||
/*
|
||||
* Offset 0x5FEFC
|
||||
* D:\driver2\game\C\MDRAW.C (line 271)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DrawFullscreenTarget(struct _TARGET *target /*$s0*/)
|
||||
{ // line 1, address 0x5fefc
|
||||
struct VECTOR tv; // stack address -24
|
||||
} // line 39, address 0x60004
|
59
src/C/mgeneric.c
Normal file
59
src/C/mgeneric.c
Normal file
@ -0,0 +1,59 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x60014
|
||||
* D:\driver2\game\C\MGENERIC.C (line 109)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ StorePlayerPosition(struct SAVED_PLAYER_POS *data /*$a2*/)
|
||||
{ // line 1, address 0x60014
|
||||
unsigned short type; // $a0
|
||||
} // line 39, address 0x602b0
|
||||
/*
|
||||
* Offset 0x602B0
|
||||
* D:\driver2\game\C\MGENERIC.C (line 150)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ RestorePlayerPosition(struct SAVED_PLAYER_POS *data /*$a2*/)
|
||||
{ // line 1, address 0x602b0
|
||||
} // line 28, address 0x60418
|
||||
/*
|
||||
* Offset 0x60418
|
||||
* D:\driver2\game\C\MGENERIC.C (line 180)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ StoreCarPosition(struct _TARGET *target /*$t1*/, struct SAVED_CAR_POS *data /*$t0*/)
|
||||
{ // line 1, address 0x60418
|
||||
int slot; // $v1
|
||||
} // line 32, address 0x60544
|
||||
/*
|
||||
* Offset 0x6054C
|
||||
* D:\driver2\game\C\MGENERIC.C (line 214)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ RestoreCarPosition(struct SAVED_CAR_POS *data /*$a3*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x607A8
|
||||
* D:\driver2\game\C\MGENERIC.C (line 62)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ StoreEndData()
|
||||
{ // line 2, address 0x607a8
|
||||
struct _TARGET *target; // $s0
|
||||
struct SAVED_CAR_POS *carpos; // $s2
|
||||
int i; // $s1
|
||||
} // line 22, address 0x6084c
|
||||
/*
|
||||
* Offset 0x6084C
|
||||
* D:\driver2\game\C\MGENERIC.C (line 86)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ RestoreStartData()
|
||||
{ // line 2, address 0x6084c
|
||||
struct SAVED_CAR_POS *carpos; // $s0
|
||||
int i; // $s1
|
||||
} // line 18, address 0x608a0
|
453
src/C/mission.c
Normal file
453
src/C/mission.c
Normal file
@ -0,0 +1,453 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x608B4
|
||||
* D:\driver2\game\C\MISSION.C (line 1347)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ InitialiseMissionDefaults()
|
||||
{ // line 2, address 0x608b4
|
||||
int i; // $a0
|
||||
} // line 88, address 0x60adc
|
||||
/*
|
||||
* Offset 0x60ADC
|
||||
* D:\driver2\game\C\MISSION.C (line 1437)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ LoadMission(int missionnum /*$s0*/)
|
||||
{ // line 1, address 0x60adc
|
||||
char filename[32]; // stack address -64
|
||||
unsigned long header; // stack address -32
|
||||
unsigned long address; // $s0
|
||||
unsigned long length; // $s1
|
||||
int size; // $t1
|
||||
int i; // $v0
|
||||
{ // line 240, address 0x60df0
|
||||
int flags; // $a1
|
||||
int time; // $a2
|
||||
} // line 261, address 0x60e6c
|
||||
{ // line 330, address 0x60fec
|
||||
struct _ROUTE_INFO *rinfo; // $s0
|
||||
} // line 356, address 0x6108c
|
||||
{ // line 393, address 0x61164
|
||||
int num; // $v1
|
||||
} // line 404, address 0x61190
|
||||
} // line 442, address 0x612c0
|
||||
/*
|
||||
* Offset 0x612DC
|
||||
* D:\driver2\game\C\MISSION.C (line 1881)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ HandleMission()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x6150C
|
||||
* D:\driver2\game\C\MISSION.C (line 1962)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ HandleTimer(struct MR_TIMER *timer /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x616EC
|
||||
* D:\driver2\game\C\MISSION.C (line 2015)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ RegisterChaseHit(int car1 /*$a0*/, int car2 /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x617EC
|
||||
* D:\driver2\game\C\MISSION.C (line 2140)
|
||||
* Stack frame base $sp, length 720
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
int /*$ra*/ Swap2Cars(int curslot /*$a3*/, int newslot /*$s1*/)
|
||||
{ // line 1, address 0x617ec
|
||||
struct _CAR_DATA cd; // stack address -704
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
int ctrlNodeCurId; // $s4
|
||||
int pnodeCurId; // $s5
|
||||
int ctrlNodeNewId; // $t2
|
||||
int pnodeNewId; // $t3
|
||||
} // line 81, address 0x61cc4
|
||||
/*
|
||||
* Offset 0x61CC4
|
||||
* D:\driver2\game\C\MISSION.C (line 2234)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ HandleMissionThreads()
|
||||
{ // line 2, address 0x61cc4
|
||||
struct MR_THREAD *thread; // $s0
|
||||
int running; // $s1
|
||||
unsigned long value; // $a1
|
||||
int i; // $a0
|
||||
} // line 43, address 0x61ea4
|
||||
/*
|
||||
* Offset 0x61EA4
|
||||
* D:\driver2\game\C\MISSION.C (line 2279)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ MRCommand(struct MR_THREAD *thread /*$s1*/, unsigned long cmd /*$a1*/)
|
||||
{ // line 1, address 0x61ea4
|
||||
unsigned long val1; // $s0
|
||||
unsigned long val2; // $s0
|
||||
} // line 160, address 0x624d8
|
||||
/*
|
||||
* Offset 0x624D8
|
||||
* D:\driver2\game\C\MISSION.C (line 2701)
|
||||
* Stack frame base $sp, length 120
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ MRProcessTarget(struct MR_THREAD *thread /*$s7*/, struct _TARGET *target /*$s5*/)
|
||||
{ // line 1, address 0x624d8
|
||||
struct VECTOR tv; // stack address -96
|
||||
struct VECTOR pv; // stack address -80
|
||||
int ret; // $fp
|
||||
unsigned long dist; // $s6
|
||||
int slot; // stack address -48
|
||||
int message; // $v0
|
||||
int sample; // $a0
|
||||
{ // line 158, address 0x62a24
|
||||
unsigned long message; // $s1
|
||||
unsigned long timer; // $s0
|
||||
unsigned long delay; // $s2
|
||||
} // line 173, address 0x62a94
|
||||
{ // line 233, address 0x62c64
|
||||
int direction; // $s0
|
||||
long pos[4]; // stack address -64
|
||||
int *inform; // $s4
|
||||
struct _CAR_DATA *cp; // $v0
|
||||
} // line 239, address 0x62c64
|
||||
{ // line 368, address 0x63090
|
||||
long pos[4]; // stack address -64
|
||||
} // line 375, address 0x630f8
|
||||
{ // line 403, address 0x63204
|
||||
} // line 403, address 0x63204
|
||||
{ // line 434, address 0x632bc
|
||||
} // line 434, address 0x632bc
|
||||
{ // line 457, address 0x63380
|
||||
} // line 457, address 0x63380
|
||||
} // line 593, address 0x63790
|
||||
/*
|
||||
* Offset 0x63790
|
||||
* D:\driver2\game\C\MISSION.C (line 3311)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
int /*$ra*/ MRCreateCar(struct _TARGET *target /*$s1*/)
|
||||
{ // line 1, address 0x63790
|
||||
long pos[4]; // stack address -64
|
||||
int actAsCop; // $s2
|
||||
int damaged; // $s7
|
||||
int model; // $s4
|
||||
int palette; // $s5
|
||||
int dir; // $s3
|
||||
int rot; // $a2
|
||||
int id; // $s0
|
||||
char playerid; // stack address -48
|
||||
} // line 79, address 0x63a08
|
||||
/*
|
||||
* Offset 0x63A08
|
||||
* D:\driver2\game\C\MISSION.C (line 3398)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ PreProcessTargets()
|
||||
{ // line 2, address 0x63a08
|
||||
struct _TARGET *target; // $s0
|
||||
int i; // $s1
|
||||
} // line 52, address 0x63be0
|
||||
/*
|
||||
* Offset 0x63BE0
|
||||
* D:\driver2\game\C\MISSION.C (line 3469)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
int /*$ra*/ HandleGameOver()
|
||||
{ // line 3, address 0x63be0
|
||||
{ // line 5, address 0x63c20
|
||||
struct _PLAYER *lp; // $s0
|
||||
struct _CAR_DATA *cp; // $a2
|
||||
int i; // $s2
|
||||
int playersdead; // $s3
|
||||
{ // line 41, address 0x63d4c
|
||||
int surfInd; // $v1
|
||||
} // line 53, address 0x63de4
|
||||
} // line 96, address 0x63f4c
|
||||
} // line 120, address 0x63fec
|
||||
/*
|
||||
* Offset 0x63FEC
|
||||
* D:\driver2\game\C\MISSION.C (line 3623)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetMissionComplete()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64210
|
||||
* D:\driver2\game\C\MISSION.C (line 3716)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ActivateNextFlag()
|
||||
{ // line 2, address 0x64210
|
||||
int i; // $a3
|
||||
int j; // $a1
|
||||
} // line 23, address 0x642d0
|
||||
/*
|
||||
* Offset 0x642D0
|
||||
* D:\driver2\game\C\MISSION.C (line 2046)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ PauseMissionTimer(int pause /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64310
|
||||
* D:\driver2\game\C\MISSION.C (line 2060)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetMissionMessage(char *message /*$a0*/, int priority /*$a1*/, int seconds /*$a2*/)
|
||||
{ // line 1, address 0x64310
|
||||
int i; // $a3
|
||||
} // line 19, address 0x643a8
|
||||
/*
|
||||
* Offset 0x643B0
|
||||
* D:\driver2\game\C\MISSION.C (line 2081)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetPlayerMessage(int player /*$a0*/, char *message /*$a1*/, int priority /*$a2*/, int seconds /*$a3*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x6442C
|
||||
* D:\driver2\game\C\MISSION.C (line 2094)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ TargetComplete(struct _TARGET *target /*$a0*/, int player /*$a1*/)
|
||||
{ // line 1, address 0x6442c
|
||||
unsigned long complete; // $a0
|
||||
} // line 21, address 0x64470
|
||||
/*
|
||||
* Offset 0x64470
|
||||
* D:\driver2\game\C\MISSION.C (line 2117)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ TargetActive(struct _TARGET *target /*$a0*/, int player /*$a1*/)
|
||||
{ // line 1, address 0x64470
|
||||
unsigned long active; // $a0
|
||||
} // line 21, address 0x644b4
|
||||
/*
|
||||
* Offset 0x644B4
|
||||
* D:\driver2\game\C\MISSION.C (line 2223)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetConfusedCar(int slot /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64500
|
||||
* D:\driver2\game\C\MISSION.C (line 2441)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
int /*$ra*/ MROperator(struct MR_THREAD *thread /*$s3*/, unsigned long op /*$s0*/)
|
||||
{ // line 1, address 0x64500
|
||||
int result; // $s2
|
||||
long val1; // $s1
|
||||
long val2; // $a1
|
||||
} // line 51, address 0x64614
|
||||
/*
|
||||
* Offset 0x64614
|
||||
* D:\driver2\game\C\MISSION.C (line 2494)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ MRFunction(struct MR_THREAD *thread /*$s0*/, unsigned long fnc /*$a1*/)
|
||||
{ // line 1, address 0x64614
|
||||
} // line 17, address 0x6467c
|
||||
/*
|
||||
* Offset 0x6467C
|
||||
* D:\driver2\game\C\MISSION.C (line 2514)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ MRInitialiseThread(struct MR_THREAD *thread /*$a0*/, unsigned long *pc /*$a1*/, unsigned char player /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64698
|
||||
* D:\driver2\game\C\MISSION.C (line 2526)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ MRStartThread(struct MR_THREAD *callingthread /*$t0*/, unsigned long addr /*$a1*/, unsigned char player /*$a2*/)
|
||||
{ // line 1, address 0x64698
|
||||
int i; // $v1
|
||||
} // line 17, address 0x646e8
|
||||
/*
|
||||
* Offset 0x646F8
|
||||
* D:\driver2\game\C\MISSION.C (line 2545)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ MRStopThread(struct MR_THREAD *thread /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64704
|
||||
* D:\driver2\game\C\MISSION.C (line 2551)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ MRCommitThreadGenocide()
|
||||
{ // line 2, address 0x64704
|
||||
int i; // $s0
|
||||
} // line 6, address 0x64748
|
||||
/*
|
||||
* Offset 0x64748
|
||||
* D:\driver2\game\C\MISSION.C (line 2560)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ MRJump(struct MR_THREAD *thread /*$a2*/, long jump /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64794
|
||||
* D:\driver2\game\C\MISSION.C (line 2575)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ MRPush(struct MR_THREAD *thread /*$a0*/, long value /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x647AC
|
||||
* D:\driver2\game\C\MISSION.C (line 2585)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
long /*$ra*/ MRPop(struct MR_THREAD *thread /*$a0*/)
|
||||
{ // line 1, address 0x647ac
|
||||
} // line 12, address 0x647c8
|
||||
/*
|
||||
* Offset 0x647C8
|
||||
* D:\driver2\game\C\MISSION.C (line 2600)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
long /*$ra*/ MRGetParam(struct MR_THREAD *thread /*$s0*/)
|
||||
{ // line 1, address 0x647c8
|
||||
long value; // $a1
|
||||
} // line 20, address 0x64834
|
||||
/*
|
||||
* Offset 0x64834
|
||||
* D:\driver2\game\C\MISSION.C (line 2622)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
long /*$ra*/ MRGetVariable(struct MR_THREAD *thread /*$a2*/, unsigned long var /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64918
|
||||
* D:\driver2\game\C\MISSION.C (line 2648)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ MRSetVariable(struct MR_THREAD *thread /*$v1*/, unsigned long var /*$a1*/, long value /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64A4C
|
||||
* D:\driver2\game\C\MISSION.C (line 3296)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ MRRequestCar(struct _TARGET *target /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64A8C
|
||||
* D:\driver2\game\C\MISSION.C (line 3305)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ MRHandleCarRequests()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64AB8
|
||||
* D:\driver2\game\C\MISSION.C (line 3392)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ MRCancelCarRequest(struct _TARGET *target /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64ADC
|
||||
* D:\driver2\game\C\MISSION.C (line 3452)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ Handle321Go()
|
||||
{ // line 2, address 0x64adc
|
||||
} // line 15, address 0x64b38
|
||||
/*
|
||||
* Offset 0x64B38
|
||||
* D:\driver2\game\C\MISSION.C (line 3591)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ CompleteAllActiveTargets(int player /*$a0*/)
|
||||
{ // line 2, address 0x64b38
|
||||
int i; // $a1
|
||||
int flag1; // $a3
|
||||
int flag2; // $a2
|
||||
} // line 30, address 0x64ba0
|
||||
/*
|
||||
* Offset 0x64BA0
|
||||
* D:\driver2\game\C\MISSION.C (line 3684)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetMissionFailed(enum FAIL_REASON reason /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64C40
|
||||
* D:\driver2\game\C\MISSION.C (line 3704)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetMissionOver(enum PAUSEMODE mode /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64C8C
|
||||
* D:\driver2\game\C\MISSION.C (line 3760)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CalcLapTime(int player /*$a0*/, int time /*$a1*/, int lap /*$a2*/)
|
||||
{ // line 1, address 0x64c8c
|
||||
int i; // $a2
|
||||
int ptime; // $a3
|
||||
} // line 8, address 0x64cc8
|
||||
/*
|
||||
* Offset 0x64CC8
|
||||
* D:\driver2\game\C\MISSION.C (line 3770)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ SetCarToBeStolen(struct _TARGET *target /*$s0*/, int player /*$s1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x64D38
|
||||
* D:\driver2\game\C\MISSION.C (line 3781)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ MakePhantomCarEqualPlayerCar()
|
||||
{
|
||||
}
|
47
src/C/models.c
Normal file
47
src/C/models.c
Normal file
@ -0,0 +1,47 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x64D64
|
||||
* D:\driver2\game\C\MODELS.C (line 33)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ProcessMDSLump(char *lump_file /*$a0*/, int lump_size /*$a1*/)
|
||||
{ // line 1, address 0x64d64
|
||||
int i; // $a2
|
||||
int length; // $v0
|
||||
int modelamt; // $a3
|
||||
char *mdsfile; // $a0
|
||||
struct MODEL *model; // $a0
|
||||
struct MODEL *parentmodel; // $a1
|
||||
} // line 61, address 0x64ed4
|
||||
/*
|
||||
* Offset 0x64ED4
|
||||
* D:\driver2\game\C\MODELS.C (line 212)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ ProcessCarModelLump(char *lump_ptr /*$s2*/, int lump_size /*$a1*/)
|
||||
{ // line 2, address 0x64ed4
|
||||
int address; // $a0
|
||||
int i; // $s3
|
||||
int car_model; // $a0
|
||||
int specMemReq; // $s4
|
||||
{ // line 19, address 0x64f18
|
||||
struct MODEL *model; // $v0
|
||||
int mem; // $a1
|
||||
} // line 74, address 0x64ff0
|
||||
} // line 136, address 0x6519c
|
||||
/*
|
||||
* Offset 0x6519C
|
||||
* D:\driver2\game\C\MODELS.C (line 391)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
struct MODEL * /*$ra*/ GetCarModel(char *src /*$s2*/, char **dest /*$s1*/, int KeepNormals /*$s3*/)
|
||||
{ // line 1, address 0x6519c
|
||||
struct MODEL *model; // $s0
|
||||
int length; // $a2
|
||||
char *mem; // $v1
|
||||
{ // line 28, address 0x65204
|
||||
} // line 38, address 0x65254
|
||||
} // line 41, address 0x65274
|
711
src/C/motion_c.c
Normal file
711
src/C/motion_c.c
Normal file
@ -0,0 +1,711 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
LIMBS lRoutes[5][8] = {
|
||||
{ROOT, LOWERBACK, HIPS, LHIP, LKNEE, LFOOT, LTOE, ROOT},
|
||||
{HIPS, RHIP, RKNEE, RFOOT, RTOE, ROOT, ROOT, ROOT},
|
||||
{LOWERBACK, JOINT_1, LSHOULDER, LELBOW, LHAND, LFINGERS, ROOT, ROOT},
|
||||
{JOINT_1, RSHOULDER, RELBOW, RHAND, RFINGERS, ROOT, ROOT, ROOT},
|
||||
{JOINT_1, NECK, HEAD, ROOT, ROOT, ROOT, ROOT, ROOT},
|
||||
};
|
||||
|
||||
PED_DATA MainPed[23] =
|
||||
{
|
||||
{ 0, 68u, &chest1_texture, CHEST_PAL },
|
||||
{ 1, 68u, &chest1_texture, CHEST_PAL },
|
||||
{ 17, 36u, &chest1_texture, CHEST_PAL },
|
||||
{ 6, 68u, &forearm1_texture, ARM_PAL },
|
||||
{ 8, 68u, &head1_texture, NO_PAL },
|
||||
{ 6, 68u, &arm1_texture, CHEST_PAL },
|
||||
{ 8, 36u, &arm1_texture, CHEST_PAL },
|
||||
{ 7, 68u, &forearm1_texture, ARM_PAL },
|
||||
{ 3, 244u, &forearm1_texture, ARM_PAL },
|
||||
{ 6, 68u, &arm1_texture, CHEST_PAL },
|
||||
{ 8, 36u, &arm1_texture, CHEST_PAL },
|
||||
{ 7, 68u, &forearm1_texture, ARM_PAL },
|
||||
{ 3, 244u, &forearm1_texture, ARM_PAL },
|
||||
{ 1, 68u, &jeans_texture, NO_PAL },
|
||||
{ 6, 68u, &jeans_texture, NO_PAL },
|
||||
{ 13, 100u, &jeans_texture, JEANS_PAL },
|
||||
{ 11, 244u, &jeans_texture, JEANS_PAL },
|
||||
{ 6, 63u, &chest1_texture, JEANS_PAL },
|
||||
{ 6, 68u, &arm1_texture, NO_PAL },
|
||||
{ 13, 100u, &jeans_texture, JEANS_PAL },
|
||||
{ 11, 244u, &jeans_texture, JEANS_PAL },
|
||||
{ 6, 63u, &chest1_texture, JEANS_PAL },
|
||||
{ 2, 68u, &jeans_texture, JEANS_PAL }
|
||||
};
|
||||
|
||||
// FIXME: could be incorrect
|
||||
BONE Skel[23] =
|
||||
{
|
||||
{
|
||||
ROOT,
|
||||
NULL,
|
||||
1,
|
||||
{ &Skel[LOWERBACK], &Skel[HIPS], NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
NULL
|
||||
},
|
||||
{
|
||||
LOWERBACK,
|
||||
&Skel[ROOT],
|
||||
3,
|
||||
{ &Skel[JOINT_1], &Skel[LHIP], &Skel[RHIP] },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
NULL
|
||||
},
|
||||
{
|
||||
JOINT_1,
|
||||
&Skel[LOWERBACK],
|
||||
3,
|
||||
{ &Skel[NECK], &Skel[LSHOULDER], &Skel[RSHOULDER] },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[0]
|
||||
},
|
||||
{
|
||||
NECK,
|
||||
&Skel[JOINT_1],
|
||||
1,
|
||||
{ &Skel[HEAD], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[14]
|
||||
},
|
||||
{
|
||||
HEAD,
|
||||
&Skel[NECK],
|
||||
0,
|
||||
{ NULL, NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[1]
|
||||
},
|
||||
{
|
||||
LSHOULDER,
|
||||
&Skel[JOINT_1],
|
||||
1,
|
||||
{ &Skel[LELBOW], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
NULL
|
||||
},
|
||||
{
|
||||
LELBOW,
|
||||
&Skel[LSHOULDER],
|
||||
1,
|
||||
{ &Skel[LHAND], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[8]
|
||||
},
|
||||
{
|
||||
LHAND,
|
||||
&Skel[LELBOW],
|
||||
1,
|
||||
{ &Skel[LFINGERS], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[9]
|
||||
},
|
||||
{
|
||||
LFINGERS,
|
||||
&Skel[LHAND],
|
||||
0,
|
||||
{ NULL, NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[10]
|
||||
},
|
||||
{
|
||||
RSHOULDER,
|
||||
&Skel[JOINT_1],
|
||||
1,
|
||||
{ &Skel[RELBOW], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
NULL
|
||||
},
|
||||
{
|
||||
RELBOW,
|
||||
&Skel[RSHOULDER],
|
||||
1,
|
||||
{ &Skel[RHAND], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[2]
|
||||
},
|
||||
{
|
||||
RHAND,
|
||||
&Skel[RELBOW],
|
||||
1,
|
||||
{ &Skel[RFINGERS], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[3]
|
||||
},
|
||||
{
|
||||
RFINGERS,
|
||||
&Skel[RHAND],
|
||||
0,
|
||||
{ NULL, NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[4]
|
||||
},
|
||||
{
|
||||
HIPS,
|
||||
&Skel[0],
|
||||
0,
|
||||
{ &Skel[RHIP], &Skel[LHIP], NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
NULL
|
||||
},
|
||||
{
|
||||
LHIP,
|
||||
&Skel[HIPS],
|
||||
1,
|
||||
{ &Skel[LKNEE], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[15]
|
||||
},
|
||||
{
|
||||
LKNEE,
|
||||
&Skel[LHIP],
|
||||
1,
|
||||
{ &Skel[LFOOT], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[11]
|
||||
},
|
||||
{
|
||||
LFOOT,
|
||||
&Skel[LKNEE],
|
||||
1,
|
||||
{ &Skel[LTOE], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[12]
|
||||
},
|
||||
{
|
||||
LTOE,
|
||||
&Skel[LFOOT],
|
||||
0,
|
||||
{ NULL, NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[13]
|
||||
},
|
||||
{
|
||||
RHIP,
|
||||
&Skel[HIPS],
|
||||
1,
|
||||
{ &Skel[RKNEE], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
NULL
|
||||
},
|
||||
{
|
||||
RKNEE,
|
||||
&Skel[RHIP],
|
||||
1,
|
||||
{ &Skel[RFOOT], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[5]
|
||||
},
|
||||
{
|
||||
RFOOT,
|
||||
&Skel[RKNEE],
|
||||
1,
|
||||
{ &Skel[RFOOT], NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[6]
|
||||
},
|
||||
{
|
||||
RTOE,
|
||||
&Skel[RFOOT],
|
||||
0,
|
||||
{ NULL, NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
&pmTannerModels[7]
|
||||
},
|
||||
{
|
||||
JOINT,
|
||||
&Skel[LOWERBACK],
|
||||
0,
|
||||
{ NULL, NULL, NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
NULL
|
||||
}
|
||||
};
|
||||
|
||||
int boneIdvals[15] = { 2, 3, 4, 6, 7, 8, 0xA, 0xB, 0xC, 0xF, 0x10, 0x11, 0x13, 0x14, 0x15 };
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x65274
|
||||
* D:\driver2\game\C\MOTION_C.C (line 978)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawBodySprite(int boneId /*$s1*/, long v1 /*$a1*/, long v2 /*$a2*/, int sz /*$s7*/, int sy /*stack 16*/)
|
||||
{ // line 1, address 0x65274
|
||||
struct TEXTURE_DETAILS *body_texture; // $s2
|
||||
int x0; // $s5
|
||||
int x1; // $s6
|
||||
int y0; // $fp
|
||||
int y1; // stack address -48
|
||||
int dx1; // $s4
|
||||
int dy1; // $s3
|
||||
int z; // $a3
|
||||
int z2; // $a3
|
||||
int dx2; // $t5
|
||||
int dy2; // $t3
|
||||
int width; // $t0
|
||||
int sort_fix; // $a3
|
||||
int angle; // $t3
|
||||
int c; // $t0
|
||||
int s; // $a2
|
||||
int clut; // $a2
|
||||
int tpage; // $t0
|
||||
struct POLY_FT4 *prims; // $t2
|
||||
int z1; // stack address -44
|
||||
int pal; // $v1
|
||||
{ // line 125, address 0x65618
|
||||
int tp; // $v1
|
||||
} // line 155, address 0x656b4
|
||||
} // line 231, address 0x659b4
|
||||
/*
|
||||
* Offset 0x659B4
|
||||
* D:\driver2\game\C\MOTION_C.C (line 1289)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ StoreVertexLists()
|
||||
{ // line 2, address 0x659b4
|
||||
int i; // $t1
|
||||
int j; // $a3
|
||||
int numVerts; // $t3
|
||||
struct MODEL *pModel; // $t0
|
||||
struct SVECTOR *pVerts; // $a2
|
||||
int counter; // $t4
|
||||
struct BONE *pBone; // $a0
|
||||
} // line 57, address 0x65b40
|
||||
/*
|
||||
* Offset 0x65B40
|
||||
* D:\driver2\game\C\MOTION_C.C (line 1355)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetupTannerSkeleton()
|
||||
{ // line 2, address 0x65b40
|
||||
int i; // $t1
|
||||
struct BONE *pBone; // $a3
|
||||
char *pC; // $v0
|
||||
struct SVECTOR *store; // $t4
|
||||
struct SVECTOR_NOPAD *pSVNP; // $v1
|
||||
} // line 58, address 0x65d40
|
||||
/*
|
||||
* Offset 0x65D40
|
||||
* D:\driver2\game\C\MOTION_C.C (line 1421)
|
||||
* Stack frame base $sp, length 152
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ newShowTanner()
|
||||
{ // line 2, address 0x65d40
|
||||
struct VECTOR *playerPos; // $a2
|
||||
struct VECTOR *camPos; // $a1
|
||||
struct VECTOR *vJPos; // $s1
|
||||
struct VECTOR v; // stack address -128
|
||||
struct MODEL *pModel; // $t0
|
||||
struct SVECTOR *mVerts; // $a1
|
||||
int i; // $s2
|
||||
int j; // $a3
|
||||
int c; // $a3
|
||||
int id; // $a2
|
||||
int limbs; // $a0
|
||||
struct BONE *pBone; // $s0
|
||||
int lval; // $t1
|
||||
{ // line 109, address 0x66108
|
||||
struct BONE *pBone; // $s0
|
||||
struct VECTOR *v1; // $a2
|
||||
struct VECTOR *v2; // $a1
|
||||
{ // line 109, address 0x66108
|
||||
struct SVECTOR *data; // $t1
|
||||
long t1; // stack address -92
|
||||
long t0; // stack address -96
|
||||
int z2; // stack address -80
|
||||
int z1; // stack address -84
|
||||
int z; // stack address -88
|
||||
} // line 109, address 0x6622c
|
||||
} // line 109, address 0x6622c
|
||||
{ // line 115, address 0x66260
|
||||
struct BONE *pBone; // $s0
|
||||
struct VECTOR *v1; // $a0
|
||||
struct VECTOR *v2; // $a2
|
||||
{ // line 115, address 0x66260
|
||||
struct SVECTOR *data; // $t0
|
||||
long t1; // stack address -72
|
||||
long t0; // stack address -76
|
||||
int z2; // stack address -60
|
||||
int z1; // stack address -64
|
||||
int z; // stack address -68
|
||||
} // line 115, address 0x66260
|
||||
} // line 115, address 0x66260
|
||||
{ // line 121, address 0x66398
|
||||
struct SVECTOR v1; // stack address -112
|
||||
struct SVECTOR v2; // stack address -104
|
||||
} // line 123, address 0x66398
|
||||
{ // line 148, address 0x664f4
|
||||
struct BONE *pBone; // $s0
|
||||
struct VECTOR *v1; // $a2
|
||||
struct VECTOR *v2; // $a1
|
||||
{ // line 148, address 0x664f4
|
||||
struct SVECTOR *data; // $t1
|
||||
long t1; // stack address -52
|
||||
long t0; // stack address -56
|
||||
int z2; // stack address -40
|
||||
int z1; // stack address -44
|
||||
int z; // stack address -48
|
||||
} // line 148, address 0x664f4
|
||||
} // line 148, address 0x664f4
|
||||
{ // line 154, address 0x66630
|
||||
int bias; // $a3
|
||||
} // line 167, address 0x6665c
|
||||
} // line 178, address 0x666b0
|
||||
/*
|
||||
* Offset 0x666B0
|
||||
* D:\driver2\game\C\MOTION_C.C (line 1606)
|
||||
* Stack frame base $sp, length 1104
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ newRotateBones(struct BONE *poBone /*$a0*/)
|
||||
{ // line 2, address 0x666b0
|
||||
struct MATRIX mStore[32]; // stack address -1088
|
||||
struct MATRIX *pMatrix; // $s2
|
||||
struct MATRIX *oMatrix; // $s5
|
||||
struct SVECTOR *svBone; // $s6
|
||||
struct VECTOR *vBoneRotated; // $s3
|
||||
struct BONE *pBone; // $s1
|
||||
int id; // $s0
|
||||
struct SVECTOR *pVerts; // $a3
|
||||
struct SVECTOR *pmVerts; // $s0
|
||||
int numVerts; // $t0
|
||||
struct MODEL *pModel; // $v0
|
||||
int i; // $a2
|
||||
struct SVECTOR *pD; // $a0
|
||||
int c; // $s4
|
||||
int j; // $a1
|
||||
struct VECTOR sv; // stack address -64
|
||||
{ // line 3, address 0x666b0
|
||||
int cx; // $t2
|
||||
int sx; // $a3
|
||||
int cy; // $a0
|
||||
int sy; // $t0
|
||||
int cz; // $t3
|
||||
int sz; // $t6
|
||||
int stmp; // $v0
|
||||
} // line 3, address 0x666b0
|
||||
} // line 160, address 0x67020
|
||||
/*
|
||||
* Offset 0x67020
|
||||
* D:\driver2\game\C\MOTION_C.C (line 1774)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
struct SVECTOR * /*$ra*/ GetModelVertPtr(int boneId /*$a1*/, int modelType /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x67134
|
||||
* D:\driver2\game\C\MOTION_C.C (line 1834)
|
||||
* Stack frame base $sp, length 184
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawCiv(struct PEDESTRIAN *pPed /*$fp*/)
|
||||
{ // line 1, address 0x67134
|
||||
int i; // $s5
|
||||
struct DVECTOR *outpoints; // $t9
|
||||
long *outlongs; // $s5
|
||||
struct SVECTOR *psrLerpData; // $t8
|
||||
long *zbuff; // $s4
|
||||
struct SVECTOR *pLerpData; // $s0
|
||||
struct SVECTOR pos; // stack address -160
|
||||
struct VECTOR pos1; // stack address -152
|
||||
struct SVECTOR *vert1; // $a1
|
||||
struct SVECTOR *vert2; // $a0
|
||||
struct SVECTOR temp1; // stack address -136
|
||||
struct SVECTOR temp2; // stack address -128
|
||||
int cnt3; // $a2
|
||||
int bHeadModel; // stack address -56
|
||||
int shift; // $t0
|
||||
int frame; // $a2
|
||||
struct MATRIX workmatrix; // stack address -120
|
||||
int j; // $s7
|
||||
{ // line 74, address 0x67320
|
||||
int cx; // $v1
|
||||
int sx; // $a0
|
||||
int cy; // $a1
|
||||
int sy; // $t0
|
||||
int cz; // $t3
|
||||
int sz; // $t6
|
||||
int stmp; // $t7
|
||||
} // line 74, address 0x67320
|
||||
{ // line 130, address 0x67828
|
||||
struct SVECTOR sV; // stack address -88
|
||||
struct SVECTOR sV2; // stack address -80
|
||||
struct VECTOR v; // stack address -72
|
||||
} // line 142, address 0x67864
|
||||
{ // line 151, address 0x67864
|
||||
struct CVECTOR cv; // stack address -88
|
||||
struct VECTOR pos; // stack address -80
|
||||
int phase; // $s0
|
||||
} // line 164, address 0x67908
|
||||
} // line 167, address 0x67908
|
||||
/*
|
||||
* Offset 0x67938
|
||||
* D:\driver2\game\C\MOTION_C.C (line 2041)
|
||||
* Stack frame base $sp, length 128
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DrawTanner(struct PEDESTRIAN *pPed /*$s2*/)
|
||||
{ // line 1, address 0x67938
|
||||
struct VECTOR v; // stack address -112
|
||||
struct CVECTOR cV; // stack address -96
|
||||
struct MATRIX mRotStore; // stack address -88
|
||||
struct MATRIX iMatrix; // stack address -56
|
||||
{ // line 1, address 0x67938
|
||||
} // line 20, address 0x67a48
|
||||
{ // line 26, address 0x67a48
|
||||
int cx; // $a2
|
||||
int sx; // $t0
|
||||
int cy; // $a0
|
||||
int sy; // $t2
|
||||
int cz; // $t5
|
||||
int sz; // $s0
|
||||
int stmp; // $v1
|
||||
} // line 26, address 0x67a48
|
||||
} // line 72, address 0x67dac
|
||||
/*
|
||||
* Offset 0x67DAC
|
||||
* D:\driver2\game\C\MOTION_C.C (line 2120)
|
||||
* Stack frame base $sp, length 144
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ DrawCharacter(struct PEDESTRIAN *pPed /*$s1*/)
|
||||
{ // line 1, address 0x67dac
|
||||
struct MATRIX mRotStore; // stack address -128
|
||||
struct MATRIX iMatrix; // stack address -96
|
||||
struct CVECTOR cV; // stack address -64
|
||||
struct VECTOR v; // stack address -56
|
||||
{ // line 1, address 0x67dac
|
||||
int cx; // $t0
|
||||
int sx; // $a3
|
||||
int cy; // $a0
|
||||
int sy; // $t2
|
||||
int cz; // $a2
|
||||
int sz; // $t7
|
||||
int stmp; // $v1
|
||||
} // line 1, address 0x67dac
|
||||
{ // line 55, address 0x6819c
|
||||
struct CVECTOR cv; // stack address -40
|
||||
struct VECTOR pos; // stack address -32
|
||||
int phase; // $s0
|
||||
} // line 69, address 0x68238
|
||||
} // line 73, address 0x68254
|
||||
/*
|
||||
* Offset 0x68254
|
||||
* D:\driver2\game\C\MOTION_C.C (line 2201)
|
||||
* Stack frame base $sp, length 8
|
||||
*/
|
||||
void /*$ra*/ InitTannerShadow()
|
||||
{ // line 2, address 0x68254
|
||||
struct CVECTOR cV; // stack address -8
|
||||
int i; // $a3
|
||||
} // line 46, address 0x683c0
|
||||
/*
|
||||
* Offset 0x683C0
|
||||
* D:\driver2\game\C\MOTION_C.C (line 2258)
|
||||
* Stack frame base $sp, length 296
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ TannerShadow(struct VECTOR *pPedPos /*$s6*/, struct SVECTOR *pLightPos /*$s7*/, struct CVECTOR *col /*$a2*/, short angle /*$a3*/)
|
||||
{ // line 1, address 0x683c0
|
||||
int z; // $a1
|
||||
int z0; // stack address -72
|
||||
int z1; // stack address -68
|
||||
int z2; // stack address -64
|
||||
int z3; // stack address -60
|
||||
struct SVECTOR vert[4]; // stack address -272
|
||||
struct VECTOR d; // stack address -240
|
||||
struct DR_ENV *pDE; // $s3
|
||||
struct DRAWENV drEnv; // stack address -224
|
||||
struct VECTOR cp; // stack address -128
|
||||
struct SVECTOR ca; // stack address -112
|
||||
struct VECTOR v1; // stack address -104
|
||||
int i; // $s4
|
||||
struct VECTOR myVector; // stack address -88
|
||||
int avalue2; // $v0
|
||||
int w; // $v1
|
||||
{ // line 117, address 0x68880
|
||||
} // line 117, address 0x68880
|
||||
} // line 176, address 0x68b94
|
||||
/*
|
||||
* Offset 0x68B94
|
||||
* D:\driver2\game\C\MOTION_C.C (line 2442)
|
||||
* Stack frame base $sp, length 200
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ DoCivHead(struct SVECTOR *vert1 /*$s1*/, struct SVECTOR *vert2 /*$s3*/)
|
||||
{ // line 1, address 0x68b94
|
||||
struct VECTOR headpos; // stack address -184
|
||||
struct SVECTOR final_rotation; // stack address -168
|
||||
struct SVECTOR spos1; // stack address -160
|
||||
struct MODEL *model; // $s5
|
||||
struct MATRIX work2matrix; // stack address -152
|
||||
struct MATRIX mRotStore; // stack address -120
|
||||
struct VECTOR pos1; // stack address -88
|
||||
int pal; // $v1
|
||||
int ci; // $s6
|
||||
{ // line 53, address 0x68da0
|
||||
int cx; // $v1
|
||||
int sx; // $a0
|
||||
int cy; // $a1
|
||||
int sy; // $t0
|
||||
int cz; // $t3
|
||||
int sz; // $t6
|
||||
int stmp; // $a3
|
||||
} // line 53, address 0x68da0
|
||||
{ // line 65, address 0x69000
|
||||
int cx; // $v1
|
||||
int sx; // $t3
|
||||
int cy; // $t1
|
||||
int sy; // $a3
|
||||
int stmp; // $v0
|
||||
} // line 65, address 0x69000
|
||||
{ // line 93, address 0x692dc
|
||||
struct MATRIX comb; // stack address -72
|
||||
} // line 95, address 0x692dc
|
||||
} // line 112, address 0x69474
|
||||
/*
|
||||
* Offset 0x694A0
|
||||
* D:\driver2\game\C\MOTION_C.C (line 2562)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ DrawObject(struct MODEL *model /*$t8*/, struct MATRIX *matrix /*$a1*/, struct VECTOR *pos /*$a2*/, int z_correct /*$a3*/)
|
||||
{ // line 1, address 0x694a0
|
||||
struct DVECTOR *outpoints; // $t7
|
||||
short *zbuff; // $t5
|
||||
struct SVECTOR *verts; // $t6
|
||||
char *polys; // $s0
|
||||
int cnt3; // $t1
|
||||
int i; // $s1
|
||||
int z0; // stack address -40
|
||||
int z1; // stack address -36
|
||||
int z2; // stack address -32
|
||||
long *outlongs; // $s2
|
||||
int z; // stack address -28
|
||||
{ // line 92, address 0x6983c
|
||||
} // line 101, address 0x698a8
|
||||
} // line 121, address 0x698dc
|
||||
/*
|
||||
* Offset 0x698DC
|
||||
* D:\driver2\game\C\MOTION_C.C (line 2690)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ wjmDraw3()
|
||||
{ // line 2, address 0x698dc
|
||||
struct POLYFT3 *src; // $a3
|
||||
short *zbuff; // $t2
|
||||
long *outlongs; // $a2
|
||||
struct POLY_FT3 *prims; // $t1
|
||||
unsigned long clut; // $t0
|
||||
unsigned long tpage; // $a1
|
||||
int z; // $a2
|
||||
} // line 34, address 0x69aa0
|
||||
/*
|
||||
* Offset 0x69AA0
|
||||
* D:\driver2\game\C\MOTION_C.C (line 853)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ProcessMotionLump(char *lump_ptr /*$a0*/, int lump_size /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x69B20
|
||||
* D:\driver2\game\C\MOTION_C.C (line 944)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetupPedMotionData(struct PEDESTRIAN *pPed /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x69B40
|
||||
* D:\driver2\game\C\MOTION_C.C (line 2011)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetSkelModelPointers(int type /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x69BD4
|
||||
* D:\driver2\game\C\MOTION_C.C (line 955)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetupPedestrian(struct PEDESTRIAN *pedptr /*$a0*/)
|
||||
{
|
||||
}
|
245
src/C/objanim.c
Normal file
245
src/C/objanim.c
Normal file
@ -0,0 +1,245 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
CYCLE_OBJECT Lev0[2] =
|
||||
{
|
||||
{ "REDRVR", 0, 0, 6, 10, 2, 11, 15, 2 },
|
||||
{ "NAVPIR34", 0, 0, 0, 6, 0, 7, 13, 0 }
|
||||
};
|
||||
|
||||
CYCLE_OBJECT Lev1[] = {
|
||||
{ "DOOR11", 0, 0, 1, 7, 2, 8, 14, 3 } ,
|
||||
};
|
||||
|
||||
CYCLE_OBJECT Lev2[12] =
|
||||
{
|
||||
{ "DTSYN01", 0, 0, 0, 3, 0, 4, 14, 0 },
|
||||
{ "DTSYN02", 0, 0, 0, 15, 0, 65535, 65535, 0 },
|
||||
{ "F-MTSYN2", 0, 0, 0, 3, 0, 10, 14, 0 },
|
||||
{ "DTSYN03", 0, 0, 0, 3, 0, 65535, 65535, 0 },
|
||||
{ "SYN-CAS1", 0, 0, 0, 3, 0, 4, 14, 0 },
|
||||
{ "SYNSLOT", 0, 0, 0, 3, 0, 4, 7, 0 },
|
||||
{ "ENT1B", 0, 0, 0, 15, 0, 65535, 65535, 0 },
|
||||
{ "FLAMINGO", 0, 0, 0, 3, 0, 9, 12, 0 },
|
||||
{ "CYCLE-01", 0, 0, 0, 5, 1, 6, 11, 1 },
|
||||
{ "CYCLE-02", 0, 0, 0, 3, 3, 65535, 65535, 0 },
|
||||
{ "CYCLE-03", 0, 0, 0, 6, 7, 7, 13, 7 },
|
||||
{ "CYCLE-04", 0, 0, 0, 6, 15, 7, 13, 15 }
|
||||
};
|
||||
|
||||
CYCLE_OBJECT Lev3[] = {
|
||||
{ "FWING11", 0, 0, 1, 7, 2, 8, 14, 3 }
|
||||
};
|
||||
|
||||
|
||||
CYCLE_OBJECT* Lev_CycleObjPtrs[] = {
|
||||
Lev0,
|
||||
Lev1,
|
||||
Lev2,
|
||||
Lev3
|
||||
};
|
||||
|
||||
int Num_LevCycleObjs[] = { 2, 0, 12, 0 };
|
||||
|
||||
ANIMATED_OBJECT Lev0AnimObjects[9] =
|
||||
{
|
||||
{ 0, 0, "TLIGHT01", '\0' },
|
||||
{ 1, 0, "TLIGHT02", '\0' },
|
||||
{ 2, 0, "SLIGHT01", '\x01' },
|
||||
{ 3, 0, "LOW_SLIGHT01", '\x01' },
|
||||
{ 4, 0, "DLIGHT01", '\x01' },
|
||||
{ 5, 0, "STRUT", '\0' },
|
||||
{ 6, 0, "NPLIGHT", '\0' },
|
||||
{ 7, 0, "TLIGHT01_LOW", '\0' },
|
||||
{ 8, 0, "TLIGHT02_LOW", '\0' }
|
||||
};
|
||||
|
||||
ANIMATED_OBJECT Lev1AnimObjects[5] =
|
||||
{
|
||||
{ 0, 0, "TLIGHT1", '\0' },
|
||||
{ 1, 0, "TLIGHT2", '\0' },
|
||||
{ 2, 0, "SLIGHT1", '\x01' },
|
||||
{ 3, 0, "SLIGHT2", '\x01' },
|
||||
{ 4, 0, "DLIGHT1", '\x01' }
|
||||
};
|
||||
|
||||
ANIMATED_OBJECT Lev2AnimObjects[5] =
|
||||
{
|
||||
{ 0, 0, "TLIGHT01", '\0' },
|
||||
{ 1, 0, "TLIGHT02", '\0' },
|
||||
{ 2, 0, "SLIGHT01", '\x01' },
|
||||
{ 3, 0, "DLIGHT01", '\x01' },
|
||||
{ 4, 0, "SLIGHT02", '\x01' }
|
||||
};
|
||||
|
||||
ANIMATED_OBJECT Lev3AnimObjects[4] =
|
||||
{
|
||||
{ 0, 0, "TLIGHT01", '\0' },
|
||||
{ 1, 0, "TLIGHT02", '\0' },
|
||||
{ 2, 0, "SLIGHT01", '\x01' },
|
||||
{ 3, 0, "MLIGHT01", '\x01' }
|
||||
};
|
||||
|
||||
ANIMATED_OBJECT* Level_AnimatingObjectPtrs[] = { Lev0AnimObjects, Lev1AnimObjects, Lev2AnimObjects, Lev3AnimObjects };
|
||||
|
||||
VECTOR gMissionDoorPosition = { 108000, 0, 4294575046, 0 };
|
||||
|
||||
SMASHABLE_OBJECT smashable[] =
|
||||
{
|
||||
{ 0, "CONE_TASTIC", 5, 0, 800 },
|
||||
{ 0, "BOX_TASTIC", 4, 4294961296, 4096 },
|
||||
{ 0, "BOX2_TASTIC", 4, 4294961296, 4096 },
|
||||
{ 0, "BOX3_TASTIC", 4, 4294961296, 4096 },
|
||||
{ 0, "CONE1_TASTIC", 5, 0, 800 },
|
||||
{ 0, "CONE2_TASTIC", 5, 0, 800 },
|
||||
{ 0, "BIN_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "BARRIER_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "BARREL_TASTIC", 6, 4294963996, 2400 },
|
||||
{ 0, "BARREL1_TASTIC", 6, 4294963996, 2400 },
|
||||
{ 0, "BARREL2_TASTIC", 6, 4294963996, 2400 },
|
||||
{ 0, "TABLE_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "BENCH_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "CHAIR_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "CHAIR1_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "CHAIR2_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "UMBRELLA_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "UMBRELLA1_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "PHONE_TASTIC", 6, 4294963996, 3600 },
|
||||
{ 0, "PHONE1_TASTIC", 6, 4294963996, 3600 },
|
||||
{ 0, "SIGN00_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "NEWS_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "PARKING_TASTIC", 6, 4294959796, 4096 },
|
||||
{ 0, "DRINKS_TASTIC", 6, 4294963996, 3600 },
|
||||
{ 0, "FENCE_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "FENCE00_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "FENCE01_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "FENCE02_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "FENCE03_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "FENCE04_TASTIC", 7, 4294960796, 3200 },
|
||||
{ 0, "CONE_TASTIC1", 5, 0, 800 },
|
||||
{ 0, "CONE_TASTIC2", 5, 0, 800 },
|
||||
{ 0, "CONE_TASTIC3", 5, 0, 800 },
|
||||
{ 0, "CONE_TASTIC4", 5, 0, 800 },
|
||||
{ 0, "TRAININGCONES1", 5, 0, 800 },
|
||||
{ 0, "TRAININGCONES2", 5, 0, 800 },
|
||||
{ 0, "TRAININGCONES3", 5, 0, 800 },
|
||||
{ 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
|
||||
int Level_NumAnimatedObjects[] = { 9, 5, 5, 4, 0, 6, 0, 0 };
|
||||
|
||||
char* texture_pages = 0; // some big empty array
|
||||
char* texture_cluts = 0; // some big empty array
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x139E8
|
||||
* D:\driver2\game\C\OBJANIM.C (line 362)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ ColourCycle()
|
||||
{ // line 3, address 0x139e8
|
||||
int i; // $s5
|
||||
struct CYCLE_OBJECT *cyc; // $s2
|
||||
struct RECT vram; // stack address -56
|
||||
unsigned short *bufaddr; // $s0
|
||||
unsigned short length; // $v0
|
||||
unsigned short temp; // $s1
|
||||
{ // line 26, address 0x13ab4
|
||||
int tnum; // $a1
|
||||
{ // line 39, address 0x13b0c
|
||||
} // line 48, address 0x13b54
|
||||
{ // line 53, address 0x13b80
|
||||
} // line 62, address 0x13bc8
|
||||
} // line 81, address 0x13c88
|
||||
} // line 88, address 0x13ce4
|
||||
/*
|
||||
* Offset 0x13D14
|
||||
* D:\driver2\game\C\OBJANIM.C (line 481)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ InitAnimatingObjects()
|
||||
{ // line 2, address 0x13d14
|
||||
struct ANIMATED_OBJECT *aop; // $s1
|
||||
int loop; // $s0
|
||||
int count1; // $a0
|
||||
int count; // $a2
|
||||
struct MODEL *modelPtr; // $a0
|
||||
} // line 47, address 0x13e60
|
||||
/*
|
||||
* Offset 0x13E60
|
||||
* D:\driver2\game\C\OBJANIM.C (line 613)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ animate_object(struct CELL_OBJECT *cop /*$s2*/, int type /*$a1*/)
|
||||
{ // line 1, address 0x13e60
|
||||
short yang; // $s1
|
||||
char phase; // $a0
|
||||
} // line 283, address 0x1470c
|
||||
/*
|
||||
* Offset 0x1470C
|
||||
* D:\driver2\game\C\OBJANIM.C (line 931)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ animate_garage_door()
|
||||
{ // line 2, address 0x1470c
|
||||
int dx; // $a0
|
||||
int dz; // $v1
|
||||
int dist; // $a0
|
||||
} // line 34, address 0x14888
|
||||
/*
|
||||
* Offset 0x14890
|
||||
* D:\driver2\game\C\OBJANIM.C (line 536)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitSpooledAnimObj(int model_number /*$a0*/)
|
||||
{ // line 1, address 0x14890
|
||||
struct ANIMATED_OBJECT *aop; // $a1
|
||||
int i; // $a2
|
||||
} // line 15, address 0x14900
|
||||
/*
|
||||
* Offset 0x14908
|
||||
* D:\driver2\game\C\OBJANIM.C (line 578)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
int /*$ra*/ DrawAnimatingObject(struct MODEL *model /*$a0*/, struct CELL_OBJECT *cop /*$s3*/, struct VECTOR *pos /*$a2*/)
|
||||
{ // line 1, address 0x14908
|
||||
struct ANIMATED_OBJECT *aop; // $s1
|
||||
int loop; // $s2
|
||||
int type; // $s0
|
||||
} // line 27, address 0x149b8
|
||||
/*
|
||||
* Offset 0x149B8
|
||||
* D:\driver2\game\C\OBJANIM.C (line 460)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ FindSmashableObjects()
|
||||
{ // line 2, address 0x149b8
|
||||
struct SMASHABLE_OBJECT *sip; // $s0
|
||||
} // line 8, address 0x14a10
|
||||
/*
|
||||
* Offset 0x14A10
|
||||
* D:\driver2\game\C\OBJANIM.C (line 565)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ int_garage_door()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x14A1C
|
||||
* D:\driver2\game\C\OBJANIM.C (line 260)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ InitCyclingPals()
|
||||
{ // line 2, address 0x14a1c
|
||||
int i; // $s0
|
||||
struct CYCLE_OBJECT *cyc; // $s1
|
||||
struct RECT vram; // stack address -24
|
||||
} // line 18, address 0x14ac0
|
227
src/C/objcoll.c
Normal file
227
src/C/objcoll.c
Normal file
@ -0,0 +1,227 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x69C0C
|
||||
* D:\driver2\game\C\OBJCOLL.C (line 63)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
char /*$ra*/ CellEmpty(struct VECTOR *pPosition /*$s1*/, int radius /*$s2*/)
|
||||
{ // line 1, address 0x69c0c
|
||||
struct CELL_ITERATOR ci; // stack address -48
|
||||
int cell_x; // $a0
|
||||
struct CELL_OBJECT *pCellObject; // $a2
|
||||
struct MODEL *pModel; // $a3
|
||||
{ // line 37, address 0x69cc8
|
||||
int sphere_sq; // $v0
|
||||
int xd; // $t5
|
||||
int zd; // $t4
|
||||
{ // line 51, address 0x69d2c
|
||||
int box_loop; // $t3
|
||||
int num_cb; // $t6
|
||||
struct COLLISION_PACKET *collide; // $t0
|
||||
{ // line 56, address 0x69d50
|
||||
unsigned int zs; // $t2
|
||||
unsigned int xs; // $t1
|
||||
int cs; // $a2
|
||||
int sn; // $a0
|
||||
} // line 75, address 0x69e30
|
||||
} // line 76, address 0x69e40
|
||||
} // line 78, address 0x69e40
|
||||
} // line 90, address 0x69e84
|
||||
/*
|
||||
* Offset 0x69E84
|
||||
* D:\driver2\game\C\OBJCOLL.C (line 217)
|
||||
* Stack frame base $sp, length 24
|
||||
*/
|
||||
int /*$ra*/ RaySlabsIntersection(struct tRay *ray /*$t5*/, struct tAABB *bbox /*$t4*/)
|
||||
{ // line 1, address 0x69e84
|
||||
int i; // $t1
|
||||
struct tRange inside; // stack address -24
|
||||
{ // line 9, address 0x69ea8
|
||||
struct tRange cabbage; // stack address -16
|
||||
struct tRange scaledCabbage; // stack address -8
|
||||
int dir; // $a2
|
||||
} // line 36, address 0x69ffc
|
||||
} // line 38, address 0x6a01c
|
||||
/*
|
||||
* Offset 0x6A01C
|
||||
* D:\driver2\game\C\OBJCOLL.C (line 259)
|
||||
* Stack frame base $sp, length 200
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
char /*$ra*/ lineClear(struct VECTOR *v1 /*stack 0*/, struct VECTOR *v2 /*stack 4*/)
|
||||
{ // line 1, address 0x6a01c
|
||||
int we; // stack address -56
|
||||
int ocx; // $t2
|
||||
int ocz; // $t3
|
||||
struct VECTOR pos; // stack address -184
|
||||
struct VECTOR va; // stack address -168
|
||||
struct VECTOR vb; // stack address -152
|
||||
{ // line 20, address 0x6a0dc
|
||||
int cell_x; // $fp
|
||||
int cell_z; // $s7
|
||||
struct CELL_ITERATOR ci; // stack address -136
|
||||
struct CELL_OBJECT *pCellObject; // $s4
|
||||
{ // line 40, address 0x6a19c
|
||||
struct MODEL *pModel; // $a1
|
||||
{ // line 48, address 0x6a1d8
|
||||
int sphere_sq; // $v0
|
||||
int xd; // $a0
|
||||
int zd; // $v1
|
||||
{ // line 59, address 0x6a23c
|
||||
int box_loop; // $s5
|
||||
int num_cb; // $s6
|
||||
struct COLLISION_PACKET *collide; // $s3
|
||||
{ // line 64, address 0x6a258
|
||||
struct MATRIX *mat; // $a0
|
||||
int cx; // $v1
|
||||
int cy; // $a2
|
||||
int cz; // $v0
|
||||
int cs; // $t1
|
||||
int sn; // $t5
|
||||
{ // line 64, address 0x6a258
|
||||
struct tRay ray; // stack address -112
|
||||
struct tAABB box; // stack address -80
|
||||
} // line 88, address 0x6a47c
|
||||
} // line 89, address 0x6a47c
|
||||
} // line 90, address 0x6a48c
|
||||
} // line 92, address 0x6a48c
|
||||
} // line 93, address 0x6a48c
|
||||
} // line 96, address 0x6a4ac
|
||||
} // line 101, address 0x6a500
|
||||
/*
|
||||
* Offset 0x6A500
|
||||
* D:\driver2\game\C\OBJCOLL.C (line 391)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ CollisionCopList(struct XZPAIR *pos /*$a0*/, int *count /*$s0*/)
|
||||
{ // line 1, address 0x6a500
|
||||
static struct XZPAIR initial; // address 0x0
|
||||
{ // line 11, address 0x6a550
|
||||
struct XZPAIR cell; // stack address -72
|
||||
int i; // $a0
|
||||
int j; // $t1
|
||||
{ // line 20, address 0x6a570
|
||||
struct CELL_ITERATOR ci; // stack address -64
|
||||
struct XZPAIR cbr; // stack address -40
|
||||
int barrelRegion; // $v0
|
||||
struct CELL_OBJECT *cop; // $a0
|
||||
} // line 38, address 0x6a660
|
||||
} // line 40, address 0x6a690
|
||||
} // line 41, address 0x6a6b4
|
||||
/*
|
||||
* Offset 0x6A6B4
|
||||
* D:\driver2\game\C\OBJCOLL.C (line 439)
|
||||
* Stack frame base $sp, length 168
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ CheckScenaryCollisions(struct _CAR_DATA *cp /*$s7*/)
|
||||
{ // line 1, address 0x6a6b4
|
||||
struct MODEL *model; // stack address -76
|
||||
struct CELL_OBJECT *cop; // $s5
|
||||
struct VECTOR player_pos; // stack address -152
|
||||
struct COLLISION_PACKET *collide; // $s1
|
||||
int cell_x; // $a0
|
||||
int xd; // $v1
|
||||
int zd; // $a0
|
||||
int num_cb; // stack address -72
|
||||
int box_loop; // $s6
|
||||
int sphere_sq; // $v0
|
||||
int x1; // stack address -68
|
||||
struct BUILDING_BOX bbox; // stack address -136
|
||||
int mdcount; // stack address -80
|
||||
int coll_test_count; // $t0
|
||||
struct XZPAIR box; // stack address -104
|
||||
int lbody; // stack address -64
|
||||
int extraDist; // stack address -60
|
||||
{ // line 80, address 0x6a99c
|
||||
struct BUILDING_BOX *pbox; // $s4
|
||||
struct MATRIX *mat; // $a1
|
||||
struct VECTOR address; // stack address -96
|
||||
} // line 152, address 0x6adb0
|
||||
} // line 158, address 0x6adf4
|
||||
/*
|
||||
* Offset 0x6AE24
|
||||
* D:\driver2\game\C\OBJCOLL.C (line 609)
|
||||
* Stack frame base $sp, length 128
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ QuickBuildingCollisionCheck(struct VECTOR *pPos /*$s5*/, int dir /*stack 4*/, int l /*stack 8*/, int w /*$fp*/, int extra /*stack 16*/)
|
||||
{ // line 1, address 0x6ae24
|
||||
struct MODEL *model; // $a1
|
||||
struct CELL_OBJECT *cop; // $s3
|
||||
struct VECTOR player_pos; // stack address -112
|
||||
struct COLLISION_PACKET *collide; // $s0
|
||||
int cell_x; // $a0
|
||||
int xd; // $v1
|
||||
int zd; // $a0
|
||||
int num_cb; // $s7
|
||||
int box_loop; // $s4
|
||||
int sphere_sq; // $v0
|
||||
int x1; // $s6
|
||||
struct BUILDING_BOX bbox; // stack address -96
|
||||
int mdcount; // stack address -48
|
||||
{ // line 60, address 0x6b00c
|
||||
struct BUILDING_BOX *pbox; // $s1
|
||||
struct MATRIX *mat; // $a1
|
||||
struct VECTOR address; // stack address -64
|
||||
{ // line 76, address 0x6b158
|
||||
} // line 103, address 0x6b224
|
||||
} // line 105, address 0x6b224
|
||||
} // line 112, address 0x6b288
|
||||
/*
|
||||
* Offset 0x6B288
|
||||
* D:\driver2\game\C\OBJCOLL.C (line 735)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ DoScenaryCollisions()
|
||||
{ // line 2, address 0x6b288
|
||||
struct _CAR_DATA *lcp; // $s0
|
||||
} // line 18, address 0x6b354
|
||||
/*
|
||||
* Offset 0x6B354
|
||||
* D:\driver2\game\C\OBJCOLL.C (line 155)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GlobalPositionToCellNumber(struct VECTOR *pPosition /*$a0*/)
|
||||
{ // line 1, address 0x6b354
|
||||
int cellX; // $a3
|
||||
int cellZ; // $a1
|
||||
int cbrX; // $t1
|
||||
int cbrZ; // $t0
|
||||
int cbr; // $t2
|
||||
int xOff; // $a3
|
||||
int yOff; // $a0
|
||||
} // line 20, address 0x6b44c
|
||||
/*
|
||||
* Offset 0x6B44C
|
||||
* D:\driver2\game\C\OBJCOLL.C (line 183)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
char /*$ra*/ CellAtPositionEmpty(struct VECTOR *pPosition /*$s0*/, int radius /*$s1*/)
|
||||
{ // line 1, address 0x6b44c
|
||||
} // line 22, address 0x6b498
|
||||
/*
|
||||
* Offset 0x6B498
|
||||
* D:\driver2\game\C\OBJCOLL.C (line 377)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetCopListCell(int x /*$a0*/, int z /*$a1*/)
|
||||
{ // line 2, address 0x6b498
|
||||
struct XZPAIR cell; // stack address -16
|
||||
} // line 7, address 0x6b4c4
|
||||
/*
|
||||
* Offset 0x6B4C4
|
||||
* D:\driver2\game\C\OBJCOLL.C (line 386)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ BuildCollisionCopList(int *count /*$a1*/)
|
||||
{
|
||||
}
|
168
src/C/overlay.c
Normal file
168
src/C/overlay.c
Normal file
@ -0,0 +1,168 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
COLOUR_BAND felonyColour[3] =
|
||||
{
|
||||
{ { 0u, 0u, 255u, 0u }, 0, 0 },
|
||||
{ { 255u, 0u, 0u, 0u }, 659, 0 },
|
||||
{ { 0u, 0u, 255u, 0u }, 4096, 2 }
|
||||
};
|
||||
|
||||
COLOUR_BAND playerDamageColour[3] =
|
||||
{
|
||||
{ { 0u, 255u, 0u, 0u }, 0, 0 },
|
||||
{ { 255u, 0u, 0u, 0u }, 3686, 0 },
|
||||
{ { 0u, 0u, 0u, 0u }, 4096, 2 }
|
||||
};
|
||||
|
||||
COLOUR_BAND damageColour[2] =
|
||||
{ { { 0u, 255u, 0u, 0u }, 0, 0 }, { { 255u, 0u, 0u, 0u }, 4096, 0 } };
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x14AC0
|
||||
* D:\driver2\game\C\OVERLAY.C (line 270)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ InitOverlays()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x14CA4
|
||||
* D:\driver2\game\C\OVERLAY.C (line 329)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DisplayOverlays()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x14E10
|
||||
* D:\driver2\game\C\OVERLAY.C (line 426)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawPercentageBar(struct _PERCENTAGE_BAR *bar /*$fp*/)
|
||||
{ // line 1, address 0x14e10
|
||||
struct POLY_G4 *poly; // $s0
|
||||
struct CVECTOR temp; // stack address -56
|
||||
int min_x; // $s1
|
||||
int max_x; // $s7
|
||||
int min_y; // $s2
|
||||
int max_y; // stack address -48
|
||||
char *tag; // $s0
|
||||
{ // line 94, address 0x152b0
|
||||
short tagX; // $s1
|
||||
short tagY; // $s2
|
||||
} // line 102, address 0x1530c
|
||||
} // line 104, address 0x1533c
|
||||
/*
|
||||
* Offset 0x1533C
|
||||
* D:\driver2\game\C\OVERLAY.C (line 532)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawProximityBar(struct _PERCENTAGE_BAR *bar /*$t3*/)
|
||||
{ // line 1, address 0x1533c
|
||||
struct TILE *tile; // $a1
|
||||
int min_x; // $s1
|
||||
int max_x; // $s7
|
||||
int min_y; // $s2
|
||||
int max_y; // $fp
|
||||
short total; // $v1
|
||||
char *tag; // $s0
|
||||
{ // line 87, address 0x157c8
|
||||
short tagX; // $s1
|
||||
short tagY; // $s2
|
||||
} // line 95, address 0x1582c
|
||||
} // line 97, address 0x1585c
|
||||
/*
|
||||
* Offset 0x1585C
|
||||
* D:\driver2\game\C\OVERLAY.C (line 707)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ DrawDrivingGameOverlays()
|
||||
{ // line 2, address 0x1585c
|
||||
struct SCORE_ENTRY *table; // $s1
|
||||
char string[32]; // stack address -64
|
||||
int i; // $s1
|
||||
int x; // $s3
|
||||
int y; // $s2
|
||||
{ // line 11, address 0x158c4
|
||||
{ // line 25, address 0x1593c
|
||||
} // line 25, address 0x1593c
|
||||
{ // line 50, address 0x15a4c
|
||||
} // line 63, address 0x15b10
|
||||
} // line 136, address 0x15eb4
|
||||
} // line 137, address 0x15ed8
|
||||
/*
|
||||
* Offset 0x15ED8
|
||||
* D:\driver2\game\C\OVERLAY.C (line 378)
|
||||
* Stack frame base $sp, length 128
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetFullscreenDrawing()
|
||||
{ // line 2, address 0x15ed8
|
||||
struct DRAWENV drawenv; // stack address -104
|
||||
struct DR_ENV *dr_env; // $s0
|
||||
} // line 10, address 0x15f88
|
||||
/*
|
||||
* Offset 0x15F88
|
||||
* D:\driver2\game\C\OVERLAY.C (line 395)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitPercentageBar(struct _PERCENTAGE_BAR *bar /*$a0*/, int length /*$a1*/, struct COLOUR_BAND *pColourBand /*$a2*/, char *tag /*$a3*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x15FC0
|
||||
* D:\driver2\game\C\OVERLAY.C (line 414)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ EnablePercentageBar(struct _PERCENTAGE_BAR *bar /*$a0*/, int max /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x15FD4
|
||||
* D:\driver2\game\C\OVERLAY.C (line 631)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetColourByValue(struct COLOUR_BAND *pColourBand /*$a3*/, int value /*$a1*/, struct CVECTOR *pOut /*$t0*/)
|
||||
{ // line 1, address 0x15fd4
|
||||
struct COLOUR_BAND *pPrevColourBand; // $a2
|
||||
int scale; // $a0
|
||||
int temp; // $a1
|
||||
} // line 30, address 0x16100
|
||||
/*
|
||||
* Offset 0x16100
|
||||
* D:\driver2\game\C\OVERLAY.C (line 669)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ TransparencyOn(void *potz /*$a0*/, unsigned short tpage /*$a1*/)
|
||||
{ // line 1, address 0x16100
|
||||
struct DR_TPAGE *null; // $a2
|
||||
} // line 7, address 0x1617c
|
||||
/*
|
||||
* Offset 0x1617C
|
||||
* D:\driver2\game\C\OVERLAY.C (line 687)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ UpdateFlashValue()
|
||||
{ // line 2, address 0x1617c
|
||||
char length; // $v1
|
||||
} // line 13, address 0x161ec
|
||||
/*
|
||||
* Offset 0x161EC
|
||||
* D:\driver2\game\C\OVERLAY.C (line 846)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ PrintScoreTableTime(int x /*$s0*/, int y /*$s1*/, int time /*$a0*/)
|
||||
{ // line 1, address 0x161ec
|
||||
char string[32]; // stack address -48
|
||||
int min; // $t0
|
||||
int frac; // $v1
|
||||
} // line 15, address 0x162e8
|
491
src/C/overmap.c
Normal file
491
src/C/overmap.c
Normal file
@ -0,0 +1,491 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
OVERMAP overlaidmaps[4] =
|
||||
{
|
||||
{ 197, 318, 384, 672, '\xFC', '\x99', 2145 },
|
||||
{ 229, 85, 544, 352, '\xBB', '\x88', 2048 },
|
||||
{ 68, 457, 288, 672, '\xBD', '\xBB', 1911 },
|
||||
{ 159, 207, 416, 576, '\xFC', 'D', 2048 }
|
||||
};
|
||||
|
||||
SXYPAIR MapSegmentPos[16] =
|
||||
{
|
||||
{ 0, 0 },
|
||||
{ 8, 0 },
|
||||
{ 16, 0 },
|
||||
{ 24, 0 },
|
||||
{ 0, 32 },
|
||||
{ 8, 32 },
|
||||
{ 16, 32 },
|
||||
{ 24, 32 },
|
||||
{ 0, 64 },
|
||||
{ 8, 64 },
|
||||
{ 16, 64 },
|
||||
{ 24, 64 },
|
||||
{ 0, 96 },
|
||||
{ 8, 96 },
|
||||
{ 16, 96 },
|
||||
{ 24, 96 }
|
||||
};
|
||||
|
||||
XYPAIR NVertex[4] = { { -2, 3 }, { -2, -3 }, { 2, 3 }, { 2, -3 } };
|
||||
|
||||
XYPAIR north[4] = { { 0, 20 }, { 0, 20 }, { 0, 20 }, { 0, 20 } };
|
||||
|
||||
VECTOR player_position = { 0, 0, 0, 0 };
|
||||
|
||||
char* palettedir[] = {
|
||||
"CHICAGO",
|
||||
"HAVANA",
|
||||
"VEGAS",
|
||||
"RIO",
|
||||
"CHICAGO",
|
||||
"HAVANA",
|
||||
"VEGAS",
|
||||
"RIO",
|
||||
};
|
||||
|
||||
/*
|
||||
* Offset 0x162E8
|
||||
* D:\driver2\game\C\OVERMAP.C (line 685)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ DrawTargetBlip(struct VECTOR *pos /*$t0*/, unsigned char r /*$s2*/, unsigned char g /*$s3*/, unsigned char b /*$s4*/, unsigned long flags /*stack 16*/)
|
||||
{ // line 1, address 0x162e8
|
||||
struct POLY_FT4 *poly; // $t0
|
||||
struct VECTOR vec; // stack address -40
|
||||
int ysize; // $a2
|
||||
} // line 74, address 0x165c0
|
||||
/*
|
||||
* Offset 0x165E0
|
||||
* D:\driver2\game\C\OVERMAP.C (line 815)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DrawTargetArrow(struct VECTOR *pos /*$a2*/, unsigned long flags /*$s3*/)
|
||||
{ // line 1, address 0x165e0
|
||||
struct VECTOR vec; // stack address -56
|
||||
struct VECTOR vec2; // stack address -40
|
||||
struct POLY_FT3 *null; // $t1
|
||||
struct POLY_G3 *poly; // $s2
|
||||
int dx; // $s1
|
||||
int dy; // $s0
|
||||
} // line 60, address 0x1687c
|
||||
/*
|
||||
* Offset 0x1687C
|
||||
* D:\driver2\game\C\OVERMAP.C (line 883)
|
||||
* Stack frame base $sp, length 192
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ DrawPlayerDot(struct VECTOR *pos /*$a1*/, short rot /*$s2*/, unsigned char r /*$s5*/, unsigned char g /*$s4*/, int b /*stack 16*/, unsigned long flags /*stack 20*/)
|
||||
{ // line 1, address 0x1687c
|
||||
struct MATRIX matrix; // stack address -168
|
||||
struct VECTOR direction; // stack address -136
|
||||
struct SVECTOR apos[3]; // stack address -120
|
||||
struct VECTOR opos[3]; // stack address -96
|
||||
struct POLY_F3 *poly; // $t0
|
||||
struct VECTOR vec; // stack address -48
|
||||
} // line 63, address 0x16b2c
|
||||
/*
|
||||
* Offset 0x16B50
|
||||
* D:\driver2\game\C\OVERMAP.C (line 954)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ ProcessOverlayLump(char *lump_ptr /*$s1*/, int lump_size /*$s0*/)
|
||||
{ // line 1, address 0x16b50
|
||||
struct TEXTURE_DETAILS info; // stack address -32
|
||||
int i; // $a1
|
||||
int x; // $v0
|
||||
int y; // $a0
|
||||
} // line 32, address 0x16c74
|
||||
/*
|
||||
* Offset 0x16C74
|
||||
* D:\driver2\game\C\OVERMAP.C (line 994)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
unsigned long /*$ra*/ Long2DDistance(struct VECTOR *pPoint1 /*$a0*/, struct VECTOR *pPoint2 /*$a2*/)
|
||||
{ // line 1, address 0x16c74
|
||||
struct VECTOR delta; // stack address -24
|
||||
unsigned int result; // $v0
|
||||
{ // line 7, address 0x16cb8
|
||||
int Theta; // $v1
|
||||
int tempTheta; // $v0
|
||||
{ // line 15, address 0x16cd8
|
||||
int cos; // $v1
|
||||
} // line 23, address 0x16d04
|
||||
{ // line 28, address 0x16d0c
|
||||
int sin; // $v1
|
||||
} // line 38, address 0x16d6c
|
||||
} // line 39, address 0x16d6c
|
||||
} // line 42, address 0x16d7c
|
||||
/*
|
||||
* Offset 0x16D7C
|
||||
* D:\driver2\game\C\OVERMAP.C (line 1077)
|
||||
* Stack frame base $sp, length 808
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawOverheadMap()
|
||||
{ // line 2, address 0x16d7c
|
||||
int width; // $t5
|
||||
int height; // $t4
|
||||
int count; // $s2
|
||||
int count1; // $s3
|
||||
int tpage; // $t1
|
||||
int x_mod; // $s5
|
||||
int y_mod; // $fp
|
||||
int MeshWidth; // $s6
|
||||
int MeshHeight; // $s7
|
||||
long flag; // stack address -104
|
||||
struct SVECTOR MapMesh[5][5]; // stack address -784
|
||||
struct VECTOR MapMeshO[5][5]; // stack address -584
|
||||
struct MAPTEX MapTex[4]; // stack address -184
|
||||
struct SVECTOR direction; // stack address -152
|
||||
struct POLY_FT4 *spt; // $a3
|
||||
struct POLY_F4 *sptb; // $a0
|
||||
struct DR_AREA *draw_area; // $s2
|
||||
struct RECT clipped_size; // stack address -144
|
||||
struct VECTOR translate; // stack address -136
|
||||
{ // line 35, address 0x16e8c
|
||||
static int ptab[] = { 0xFF, 0xF0, 0xAA, 0x78, 0x50, 0x37, 0x26, 0x17, 0xD, 0xA, 0, 0, 0, 0, 0, 0 };
|
||||
} // line 36, address 0x16e8c
|
||||
{ // line 48, address 0x16f60
|
||||
static int ptab[] = { 0xFF, 0xFF, 0xF0, 0xAA, 0x78, 0x50, 0x37, 0x26, 0x17, 0xD, 0xA, 0 };
|
||||
int intens; // $a1
|
||||
} // line 58, address 0x17010
|
||||
{ // line 62, address 0x17010
|
||||
{ // line 62, address 0x17010
|
||||
struct VECTOR vec; // stack address -120
|
||||
struct TILE_1 *tile1; // $a0
|
||||
} // line 65, address 0x1715c
|
||||
} // line 65, address 0x1715c
|
||||
{ // line 69, address 0x1715c
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
} // line 84, address 0x17280
|
||||
{ // line 91, address 0x172a8
|
||||
} // line 93, address 0x172a8
|
||||
{ // line 108, address 0x17328
|
||||
} // line 110, address 0x17328
|
||||
{ // line 125, address 0x173b4
|
||||
} // line 127, address 0x173b4
|
||||
{ // line 142, address 0x17448
|
||||
} // line 144, address 0x17448
|
||||
} // line 290, address 0x17c68
|
||||
/*
|
||||
* Offset 0x17C98
|
||||
* D:\driver2\game\C\OVERMAP.C (line 1374)
|
||||
* Stack frame base $sp, length 216
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawFullscreenMap()
|
||||
{ // line 2, address 0x17c98
|
||||
struct TILE *polys; // $v0
|
||||
struct POLY_FT4 *back; // $a1
|
||||
struct POLY_FT3 *null; // $a2
|
||||
struct SVECTOR Mesh[4]; // stack address -192
|
||||
struct VECTOR MeshO[4]; // stack address -160
|
||||
struct VECTOR target; // stack address -96
|
||||
long flag; // stack address -64
|
||||
long count; // $s4
|
||||
int width; // stack address -60
|
||||
int height; // stack address -56
|
||||
int x; // $s7
|
||||
int y; // $s3
|
||||
int min_x; // $a0
|
||||
int max_x; // $v0
|
||||
int min_y; // $v1
|
||||
int max_y; // $v1
|
||||
{ // line 65, address 0x17e98
|
||||
int px; // $a2
|
||||
int pz; // $a1
|
||||
} // line 126, address 0x17ff0
|
||||
{ // line 180, address 0x1805c
|
||||
int clipped; // $s5
|
||||
} // line 232, address 0x18278
|
||||
{ // line 246, address 0x18318
|
||||
{ // line 246, address 0x18318
|
||||
struct VECTOR vec; // stack address -80
|
||||
struct TILE_1 *tile1; // $v1
|
||||
} // line 246, address 0x18318
|
||||
} // line 246, address 0x18318
|
||||
} // line 263, address 0x18450
|
||||
/*
|
||||
* Offset 0x18450
|
||||
* D:\driver2\game\C\OVERMAP.C (line 1645)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ DrawCopIndicators()
|
||||
{ // line 2, address 0x18450
|
||||
static int ft[16]; // address 0x188
|
||||
struct _CAR_DATA *cp; // $s0
|
||||
int fade; // $s1
|
||||
int cc; // $s3
|
||||
int cs; // $s2
|
||||
{ // line 17, address 0x184e8
|
||||
int dx; // $a3
|
||||
int dz; // $a1
|
||||
int p; // $a1
|
||||
int q; // $a0
|
||||
int ap; // $v1
|
||||
{ // line 25, address 0x18578
|
||||
} // line 28, address 0x185d0
|
||||
} // line 29, address 0x185d0
|
||||
} // line 31, address 0x18608
|
||||
/*
|
||||
* Offset 0x18608
|
||||
* D:\driver2\game\C\OVERMAP.C (line 1697)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawMultiplayerMap()
|
||||
{ // line 2, address 0x18608
|
||||
struct POLY_FT4 *poly; // $a2
|
||||
struct LINE_F2 *line2; // $s1
|
||||
struct VECTOR target; // stack address -64
|
||||
int i; // $s3
|
||||
int y; // $s7
|
||||
} // line 79, address 0x189e8
|
||||
/*
|
||||
* Offset 0x189E8
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2319)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ FlashOverheadMap(int r /*$a0*/, int g /*$a1*/, int b /*$a2*/)
|
||||
{ // line 2, address 0x189e8
|
||||
struct TILE *tile; // $a3
|
||||
} // line 22, address 0x18b08
|
||||
/*
|
||||
* Offset 0x18B08
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2350)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ LoadMapTile(int tpage /*$a0*/, int x /*$a1*/, int y /*$a2*/)
|
||||
{ // line 1, address 0x18b08
|
||||
struct RECT MapSegment; // stack address -16
|
||||
int temp; // $a0
|
||||
int count; // $a2
|
||||
int idx; // $a3
|
||||
} // line 33, address 0x18c5c
|
||||
/*
|
||||
* Offset 0x18C5C
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2405)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ draw_box()
|
||||
{ // line 2, address 0x18c5c
|
||||
struct LINE_F4 *line4; // $s0
|
||||
struct LINE_F2 *line2; // $s1
|
||||
} // line 22, address 0x18dbc
|
||||
/*
|
||||
* Offset 0x18DBC
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2435)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ DrawN(struct VECTOR *pScreenPosition /*$s2*/, int direct /*$s7*/)
|
||||
{ // line 1, address 0x18dbc
|
||||
struct XYPAIR lastPoint; // stack address -48
|
||||
struct XYPAIR *pPoint; // $s0
|
||||
char loop; // $s4
|
||||
{ // line 11, address 0x18e2c
|
||||
struct LINE_F2 *pLine; // $a2
|
||||
} // line 34, address 0x18f2c
|
||||
} // line 36, address 0x18f80
|
||||
/*
|
||||
* Offset 0x18F80
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2479)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DrawCompass()
|
||||
{ // line 2, address 0x18f80
|
||||
struct VECTOR position[5]; // stack address -88
|
||||
struct XYPAIR *pNorth; // $a1
|
||||
int scale; // $a0
|
||||
{ // line 3, address 0x18f80
|
||||
char loop; // $t2
|
||||
struct VECTOR *pPosition; // $a3
|
||||
void *pot; // $s0
|
||||
{ // line 32, address 0x19120
|
||||
struct LINE_G2 *pLine; // $a0
|
||||
} // line 32, address 0x19120
|
||||
} // line 46, address 0x191fc
|
||||
} // line 47, address 0x191fc
|
||||
/*
|
||||
* Offset 0x191FC
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2534)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ DrawBigCompass(struct VECTOR *root /*$a0*/, int angle /*$a1*/)
|
||||
{ // line 1, address 0x191fc
|
||||
struct VECTOR position[5]; // stack address -96
|
||||
struct VECTOR *pPosition; // $s0
|
||||
char loop; // $s1
|
||||
{ // line 23, address 0x19368
|
||||
struct LINE_G2 *pLine; // $a1
|
||||
} // line 23, address 0x19368
|
||||
} // line 35, address 0x1941c
|
||||
/*
|
||||
* Offset 0x1941C
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2577)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ CopIndicator(int xpos /*$a3*/, int strength /*$a1*/)
|
||||
{ // line 1, address 0x1941c
|
||||
struct POLY_F3 *tri; // $a2
|
||||
int str2; // $fp
|
||||
void *pot; // stack address -56
|
||||
} // line 30, address 0x195fc
|
||||
/*
|
||||
* Offset 0x195FC
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2609)
|
||||
* Stack frame base $sp, length 184
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ DrawSightCone(struct COP_SIGHT_DATA *pCopSightData /*$a0*/, struct VECTOR *pPosition /*$a1*/, int direction /*$t6*/)
|
||||
{ // line 1, address 0x195fc
|
||||
struct VECTOR vertex[9]; // stack address -160
|
||||
struct VECTOR *pVertex; // $t0
|
||||
int angle; // $a3
|
||||
int frontViewAngle; // $t1
|
||||
int negFrontViewAngle; // $a2
|
||||
int frontViewDistance; // $t4
|
||||
int surroundViewDistance; // $t3
|
||||
{ // line 15, address 0x19650
|
||||
int len; // $a1
|
||||
{ // line 27, address 0x19668
|
||||
int temp; // $v0
|
||||
} // line 27, address 0x19668
|
||||
} // line 27, address 0x19668
|
||||
{ // line 34, address 0x196d4
|
||||
struct VECTOR *pVertex; // $a2
|
||||
void *pot; // $a3
|
||||
{ // line 42, address 0x19720
|
||||
struct POLY_G3 *poly; // $a1
|
||||
struct VECTOR *pNextVertex; // $a0
|
||||
} // line 50, address 0x19744
|
||||
} // line 61, address 0x19824
|
||||
} // line 62, address 0x19824
|
||||
/*
|
||||
* Offset 0x19824
|
||||
* D:\driver2\game\C\OVERMAP.C (line 1043)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ InitOverheadMap()
|
||||
{ // line 2, address 0x19824
|
||||
int tpage; // $s3
|
||||
int c; // $s2
|
||||
int d; // $s1
|
||||
} // line 27, address 0x19924
|
||||
/*
|
||||
* Offset 0x19948
|
||||
* D:\driver2\game\C\OVERMAP.C (line 1678)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ InitMultiplayerMap()
|
||||
{ // line 2, address 0x19948
|
||||
struct RECT rect; // stack address -48
|
||||
char filename[32]; // stack address -40
|
||||
} // line 17, address 0x199fc
|
||||
/*
|
||||
* Offset 0x199FC
|
||||
* D:\driver2\game\C\OVERMAP.C (line 1778)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ WorldToMultiplayerMap(struct VECTOR *in /*$a3*/, struct VECTOR *out /*$a2*/)
|
||||
{ // line 1, address 0x199fc
|
||||
int x; // $v1
|
||||
int z; // $a0
|
||||
} // line 17, address 0x19ac8
|
||||
/*
|
||||
* Offset 0x19AC8
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2392)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetMapPos()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x19B58
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2703)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ WorldToOverheadMapPositions(struct VECTOR *pGlobalPosition /*$s1*/, struct VECTOR *pOverheadMapPosition /*$s3*/, int count /*$s2*/, char inputRelative /*$s5*/, int outputRelative /*stack 16*/)
|
||||
{ // line 1, address 0x19b58
|
||||
struct MATRIX TempMatrix; // stack address -80
|
||||
int sin; // $a1
|
||||
int cos; // $a2
|
||||
int angle; // $v1
|
||||
int scale; // $s0
|
||||
{ // line 42, address 0x19c88
|
||||
struct SVECTOR tempVector; // stack address -48
|
||||
long flag; // stack address -40
|
||||
} // line 57, address 0x19d28
|
||||
} // line 61, address 0x19d74
|
||||
/*
|
||||
* Offset 0x19D74
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2771)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetFullscreenMapMatrix()
|
||||
{ // line 2, address 0x19d74
|
||||
struct VECTOR translate; // stack address -32
|
||||
struct SVECTOR direction; // stack address -16
|
||||
} // line 16, address 0x19e50
|
||||
/*
|
||||
* Offset 0x19E50
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2794)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ WorldToFullscreenMap(struct VECTOR *in /*$a0*/, struct VECTOR *out /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x19EE4
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2806)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ WorldToFullscreenMap2(struct VECTOR *in /*$a0*/, struct VECTOR *out /*$a1*/)
|
||||
{ // line 1, address 0x19ee4
|
||||
struct SVECTOR pos; // stack address -24
|
||||
long flag; // stack address -16
|
||||
} // line 13, address 0x19fac
|
||||
/*
|
||||
* Offset 0x19FAC
|
||||
* D:\driver2\game\C\OVERMAP.C (line 1970)
|
||||
* Stack frame base $sp, length 696
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ ProcessPalletLump(char *lump_ptr /*$a0*/, int lump_size /*$a1*/)
|
||||
{ // line 1, address 0x19fac
|
||||
int total_cluts; // $v0
|
||||
int clutValue; // $s1
|
||||
int tpageindex; // $s2
|
||||
int texnum; // $s3
|
||||
int palette; // $s4
|
||||
int clut_number; // $v1
|
||||
unsigned short clutTable[320]; // stack address -680
|
||||
char *buffPtr; // $s0
|
||||
{ // line 43, address 0x1a038
|
||||
} // line 43, address 0x1a038
|
||||
} // line 64, address 0x1a0fc
|
||||
/*
|
||||
* Offset 0x1A0FC
|
||||
* D:\driver2\game\C\OVERMAP.C (line 2043)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ load_civ_palettes(struct RECT *cluts /*$a0*/)
|
||||
{
|
||||
}
|
115
src/C/pad.c
Normal file
115
src/C/pad.c
Normal file
@ -0,0 +1,115 @@
|
||||
|
||||
char High_shake_data[] = { 1, 0xFF, 0xFF, 0xC8, 0x50, 0x50, 0x50, 0x50, 0x50, 0x46, 0x46, 0x46, 0x46, 0x46, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0 };
|
||||
|
||||
char Med_shake_data[] = { 1, 0xC8, 0xC8, 0x64, 0x46, 0x46, 0x46, 0x46, 0x46, 0xA, 0xA, 0xA, 0 };
|
||||
|
||||
char Low_shake_data[] = { 1, 0xA0, 0xA0, 0x46, 0x46, 0xA, 0xA, 0xA, 0xA, 0 };
|
||||
|
||||
char* shake_data[] = { High_shake_data, Med_shake_data, Low_shake_data };
|
||||
|
||||
/*
|
||||
* Offset 0x6B4E8
|
||||
* D:\driver2\game\C\PAD.C (line 75)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ InitControllers()
|
||||
{ // line 2, address 0x6b4e8
|
||||
int i; // $s3
|
||||
int j; // $a1
|
||||
} // line 36, address 0x6b610
|
||||
/*
|
||||
* Offset 0x6B610
|
||||
* D:\driver2\game\C\PAD.C (line 132)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ ReadControllers()
|
||||
{ // line 2, address 0x6b610
|
||||
int i; // $s3
|
||||
int pad; // $s2
|
||||
} // line 57, address 0x6b758
|
||||
/*
|
||||
* Offset 0x6B758
|
||||
* D:\driver2\game\C\PAD.C (line 257)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ MapPad(int pad /*$t2*/, struct PADRAW *pData /*$a3*/)
|
||||
{ // line 1, address 0x6b758
|
||||
unsigned short i; // $a3
|
||||
unsigned short buttons; // $t0
|
||||
unsigned short mapped; // $t1
|
||||
} // line 64, address 0x6b940
|
||||
/*
|
||||
* Offset 0x6B948
|
||||
* D:\driver2\game\C\PAD.C (line 336)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ HandleDualShock()
|
||||
{ // line 2, address 0x6b948
|
||||
int state; // $v1
|
||||
int port; // $s3
|
||||
int pad; // $s5
|
||||
int dsload; // $s7
|
||||
} // line 114, address 0x6bc2c
|
||||
/*
|
||||
* Offset 0x6BC2C
|
||||
* D:\driver2\game\C\PAD.C (line 452)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ HandlePadVibration(int pad /*$t1*/)
|
||||
{ // line 1, address 0x6bc2c
|
||||
int speed; // $a3
|
||||
} // line 44, address 0x6be50
|
||||
/*
|
||||
* Offset 0x6BE60
|
||||
* D:\driver2\game\C\PAD.C (line 113)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ CloseControllers()
|
||||
{ // line 2, address 0x6be60
|
||||
int i; // $v1
|
||||
} // line 11, address 0x6bea0
|
||||
/*
|
||||
* Offset 0x6BEA0
|
||||
* D:\driver2\game\C\PAD.C (line 191)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetPadVibration(int pad /*$a3*/, unsigned char type /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x6BF1C
|
||||
* D:\driver2\game\C\PAD.C (line 209)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ StopPadVibration(int pad /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x6BF54
|
||||
* D:\driver2\game\C\PAD.C (line 228)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ StopDualShockMotors()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x6BF5C
|
||||
* D:\driver2\game\C\PAD.C (line 232)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetDuplicatePadData(char *buffer /*$a0*/, int length /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x6BF8C
|
||||
* D:\driver2\game\C\PAD.C (line 323)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ClearPad(int pad /*$a0*/)
|
||||
{
|
||||
}
|
472
src/C/pathfind.c
Normal file
472
src/C/pathfind.c
Normal file
@ -0,0 +1,472 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0xE7000
|
||||
* D:\driver2\game\C\PATHFIND.C (line 314)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 s1
|
||||
*/
|
||||
struct tNode /*$ra*/ popNode()
|
||||
{ // line 1, address 0xe7000
|
||||
unsigned int lNumHeapEntries; // $s0
|
||||
struct tNode res; // stack address -24
|
||||
unsigned short f; // $t8
|
||||
unsigned int child; // $a1
|
||||
unsigned int here; // $t5
|
||||
{ // line 11, address 0xe7058
|
||||
unsigned int lastEntry; // $t4
|
||||
{ // line 15, address 0xe7070
|
||||
int d; // $t3
|
||||
int d2; // $t2
|
||||
int d3; // $a3
|
||||
int d4; // $t1
|
||||
} // line 32, address 0xe70b8
|
||||
} // line 33, address 0xe7110
|
||||
{ // line 35, address 0xe7110
|
||||
int d; // $a2
|
||||
int d2; // $a3
|
||||
int d3; // $t1
|
||||
int d4; // $t2
|
||||
} // line 44, address 0xe715c
|
||||
} // line 47, address 0xe715c
|
||||
/*
|
||||
* Offset 0xE7194
|
||||
* D:\driver2\game\C\PATHFIND.C (line 426)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ WunCell(struct VECTOR *pbase /*$s0*/)
|
||||
{ // line 1, address 0xe7194
|
||||
int i; // $s2
|
||||
int j; // $s4
|
||||
struct VECTOR v[2]; // stack address -88
|
||||
struct VECTOR pos; // stack address -56
|
||||
{ // line 14, address 0xe723c
|
||||
{ // line 14, address 0xe723c
|
||||
int z; // $a1
|
||||
int x; // $a2
|
||||
} // line 20, address 0xe72c8
|
||||
} // line 20, address 0xe72c8
|
||||
} // line 24, address 0xe735c
|
||||
/*
|
||||
* Offset 0xE735C
|
||||
* D:\driver2\game\C\PATHFIND.C (line 453)
|
||||
* Stack frame base $sp, length 16
|
||||
*/
|
||||
void /*$ra*/ InvalidateMap()
|
||||
{ // line 2, address 0xe735c
|
||||
struct VECTOR bPos; // stack address -16
|
||||
int count; // $t4
|
||||
int dir; // $t1
|
||||
int p; // $t2
|
||||
int q; // $t3
|
||||
{ // line 12, address 0xe73a8
|
||||
int tile; // $a0
|
||||
int mask; // $a1
|
||||
int diff; // $a1
|
||||
int i; // $v0
|
||||
} // line 15, address 0xe73a8
|
||||
} // line 34, address 0xe74b0
|
||||
/*
|
||||
* Offset 0xE74B0
|
||||
* D:\driver2\game\C\PATHFIND.C (line 495)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ BloodyHell()
|
||||
{ // line 2, address 0xe74b0
|
||||
struct VECTOR bPos; // stack address -48
|
||||
int count; // $s4
|
||||
int dir; // $s0
|
||||
int p; // $s1
|
||||
int q; // $s2
|
||||
unsigned int howMany; // $s3
|
||||
//0x69C raa
|
||||
{ // line 22, address 0xe755c
|
||||
int tile; // $a0
|
||||
int mask; // $a1
|
||||
int diff; // $v0
|
||||
int i; // $v0
|
||||
} // line 42, address 0xe75e4
|
||||
} // line 70, address 0xe76c4
|
||||
/*
|
||||
* Offset 0xE76C4
|
||||
* D:\driver2\game\C\PATHFIND.C (line 567)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ blocked(struct tNode *v1 /*$a3*/, struct tNode *v2 /*$a2*/)
|
||||
{ // line 1, address 0xe76c4
|
||||
struct VECTOR pos; // stack address -24
|
||||
int res; // $a0
|
||||
{ // line 8, address 0xe76e0
|
||||
{ // line 8, address 0xe76e0
|
||||
int z; // $a2
|
||||
int x; // $v1
|
||||
} // line 11, address 0xe774c
|
||||
} // line 11, address 0xe774c
|
||||
{ // line 18, address 0xe7790
|
||||
{ // line 18, address 0xe7790
|
||||
int z; // $v1
|
||||
int x; // $a0
|
||||
} // line 18, address 0xe7790
|
||||
} // line 18, address 0xe7790
|
||||
} // line 23, address 0xe7814
|
||||
/*
|
||||
* Offset 0xE7814
|
||||
* D:\driver2\game\C\PATHFIND.C (line 712)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ iterate()
|
||||
{ // line 2, address 0xe7814
|
||||
int dir; // $s2
|
||||
struct tNode itHere; // stack address -48
|
||||
struct tNode *nbr; // $s4
|
||||
{ // line 12, address 0xe7870
|
||||
int nearBy; // $v1
|
||||
int computed; // $s1
|
||||
{ // line 14, address 0xe7870
|
||||
int dx; // $v0
|
||||
int dz; // $a0
|
||||
} // line 15, address 0xe7870
|
||||
{ // line 15, address 0xe7870
|
||||
{ // line 15, address 0xe7870
|
||||
int res; // $a0
|
||||
} // line 15, address 0xe7870
|
||||
} // line 15, address 0xe7870
|
||||
} // line 51, address 0xe797c
|
||||
{ // line 56, address 0xe79b4
|
||||
int nr; // $a0
|
||||
int nl; // $v1
|
||||
{ // line 58, address 0xe7a08
|
||||
unsigned int a; // $v1
|
||||
{ // line 58, address 0xe7a08
|
||||
{ // line 1, address 0xe7a44
|
||||
unsigned int r; // $v0
|
||||
} // line 1, address 0xe7a68
|
||||
} // line 1, address 0xe7a68
|
||||
} // line 1, address 0xe7a68
|
||||
{ // line 61, address 0xe7aac
|
||||
struct tNode *pnode; // $s0
|
||||
{ // line 61, address 0xe7aac
|
||||
unsigned int parent; // $a2
|
||||
unsigned int i; // $a3
|
||||
} // line 61, address 0xe7b98
|
||||
} // line 61, address 0xe7b98
|
||||
} // line 62, address 0xe7b98
|
||||
} // line 64, address 0xe7ba8
|
||||
/*
|
||||
* Offset 0xE7BD0
|
||||
* D:\driver2\game\C\PATHFIND.C (line 801)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitPathFinding()
|
||||
{ // line 2, address 0xe7bd0
|
||||
int i; // $a0
|
||||
{ // line 1, address 0xe7bd0
|
||||
} // line 1, address 0xe7bd0
|
||||
{ // line 1, address 0xe7bd0
|
||||
} // line 1, address 0xe7bd0
|
||||
} // line 18, address 0xe7ca8
|
||||
/*
|
||||
* Offset 0xE7CA8
|
||||
* D:\driver2\game\C\PATHFIND.C (line 821)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ getInterpolatedDistance(struct VECTOR *pos /*$s2*/)
|
||||
{ // line 1, address 0xe7ca8
|
||||
struct tNode n; // stack address -72
|
||||
int fx; // $s4
|
||||
int fz; // $s5
|
||||
int a; // $s3
|
||||
int b; // $s2
|
||||
int c; // $v1
|
||||
int min; // $s0
|
||||
int flag; // $fp
|
||||
{ // line 1, address 0xe7ca8
|
||||
struct VECTOR *where; // $s2
|
||||
struct tNode *node; // $s0
|
||||
{ // line 1, address 0xe7ca8
|
||||
int x; // $v1
|
||||
{ // line 1, address 0xe7ca8
|
||||
struct tNode *pos; // $s0
|
||||
{ // line 1, address 0xe7ca8
|
||||
struct VECTOR sp; // stack address -56
|
||||
{ // line 1, address 0xe7ca8
|
||||
{ // line 1, address 0xe7ca8
|
||||
int z; // $v0
|
||||
int x; // $a0
|
||||
} // line 1, address 0xe7ca8
|
||||
} // line 1, address 0xe7ca8
|
||||
{ // line 1, address 0xe7d78
|
||||
int res; // $v0
|
||||
} // line 1, address 0xe7d9c
|
||||
} // line 1, address 0xe7da0
|
||||
} // line 1, address 0xe7da0
|
||||
} // line 1, address 0xe7da0
|
||||
} // line 1, address 0xe7da0
|
||||
{ // line 1, address 0xe7da0
|
||||
{ // line 1, address 0xe7da0
|
||||
int res; // $v0
|
||||
} // line 1, address 0xe7da0
|
||||
} // line 1, address 0xe7da0
|
||||
{ // line 1, address 0xe7da0
|
||||
{ // line 1, address 0xe7da0
|
||||
struct VECTOR sp; // stack address -56
|
||||
{ // line 1, address 0xe7da0
|
||||
{ // line 1, address 0xe7da0
|
||||
int x; // $a3
|
||||
int z; // $v0
|
||||
} // line 1, address 0xe7da0
|
||||
} // line 1, address 0xe7da0
|
||||
{ // line 1, address 0xe7e84
|
||||
int res; // $v0
|
||||
} // line 1, address 0xe7ea8
|
||||
} // line 1, address 0xe7eac
|
||||
} // line 1, address 0xe7eac
|
||||
{ // line 18, address 0xe7eac
|
||||
{ // line 18, address 0xe7eac
|
||||
int res; // $a0
|
||||
} // line 18, address 0xe7eac
|
||||
} // line 18, address 0xe7eac
|
||||
{ // line 27, address 0xe7f28
|
||||
{ // line 27, address 0xe7f28
|
||||
struct VECTOR sp; // stack address -56
|
||||
{ // line 27, address 0xe7f28
|
||||
{ // line 27, address 0xe7f28
|
||||
int x; // $v1
|
||||
int z; // $v0
|
||||
} // line 27, address 0xe7f28
|
||||
} // line 27, address 0xe7f28
|
||||
{ // line 1, address 0xe7f8c
|
||||
int res; // $v0
|
||||
} // line 1, address 0xe7fb0
|
||||
} // line 1, address 0xe7fb4
|
||||
} // line 1, address 0xe7fb4
|
||||
{ // line 29, address 0xe7fb4
|
||||
{ // line 29, address 0xe7fb4
|
||||
int res; // $a0
|
||||
} // line 29, address 0xe7fb4
|
||||
} // line 29, address 0xe7fb4
|
||||
{ // line 43, address 0xe807c
|
||||
{ // line 43, address 0xe807c
|
||||
struct VECTOR sp; // stack address -56
|
||||
{ // line 43, address 0xe807c
|
||||
{ // line 43, address 0xe807c
|
||||
int x; // $v1
|
||||
int z; // $v0
|
||||
} // line 43, address 0xe807c
|
||||
} // line 43, address 0xe807c
|
||||
{ // line 1, address 0xe80d8
|
||||
int res; // $v0
|
||||
} // line 1, address 0xe80fc
|
||||
} // line 1, address 0xe8100
|
||||
} // line 1, address 0xe8100
|
||||
{ // line 44, address 0xe8100
|
||||
{ // line 44, address 0xe8100
|
||||
int res; // $a0
|
||||
} // line 44, address 0xe8100
|
||||
} // line 44, address 0xe8100
|
||||
} // line 59, address 0xe822c
|
||||
/*
|
||||
* Offset 0xE822C
|
||||
* D:\driver2\game\C\PATHFIND.C (line 891)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ addCivs()
|
||||
{ // line 2, address 0xe822c
|
||||
struct _CAR_DATA *cp; // $t5
|
||||
{ // line 7, address 0xe8260
|
||||
int where; // $a3
|
||||
{ // line 9, address 0xe8260
|
||||
int vx; // $a3
|
||||
int vz; // $a1
|
||||
int x; // $a3
|
||||
int z; // $t0
|
||||
} // line 9, address 0xe8260
|
||||
{ // line 9, address 0xe8260
|
||||
int vx; // $t1
|
||||
int vz; // $t2
|
||||
int x; // $t1
|
||||
int z; // $a1
|
||||
} // line 31, address 0xe8354
|
||||
} // line 32, address 0xe8354
|
||||
} // line 34, address 0xe836c
|
||||
/*
|
||||
* Offset 0xE836C
|
||||
* D:\driver2\game\C\PATHFIND.C (line 933)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ UpdateCopMap()
|
||||
{ // line 2, address 0xe836c
|
||||
{ // line 6, address 0xe83c0
|
||||
} // line 6, address 0xe83c0
|
||||
{ // line 13, address 0xe83fc
|
||||
struct tNode startNode; // stack address -72
|
||||
{ // line 19, address 0xe843c
|
||||
struct _CAR_DATA *cp; // $a0
|
||||
} // line 19, address 0xe843c
|
||||
{ // line 1, address 0xe8500
|
||||
{ // line 1, address 0xe8500
|
||||
{ // line 1, address 0xe8500
|
||||
{ // line 1, address 0xe8500
|
||||
int i; // $a1
|
||||
{ // line 1, address 0xe8524
|
||||
int d; // $v0
|
||||
} // line 1, address 0xe8554
|
||||
} // line 1, address 0xe8564
|
||||
} // line 1, address 0xe8564
|
||||
} // line 1, address 0xe8564
|
||||
} // line 1, address 0xe8564
|
||||
{ // line 1, address 0xe8564
|
||||
{ // line 1, address 0xe8564
|
||||
int x; // $v0
|
||||
{ // line 1, address 0xe8564
|
||||
{ // line 1, address 0xe8564
|
||||
struct VECTOR sp; // stack address -56
|
||||
{ // line 1, address 0xe8564
|
||||
{ // line 1, address 0xe8564
|
||||
int z; // $v0
|
||||
int x; // $v1
|
||||
} // line 1, address 0xe8564
|
||||
} // line 1, address 0xe8564
|
||||
{ // line 1, address 0xe8604
|
||||
int res; // $v0
|
||||
} // line 1, address 0xe8628
|
||||
} // line 1, address 0xe862c
|
||||
} // line 1, address 0xe862c
|
||||
} // line 1, address 0xe862c
|
||||
} // line 1, address 0xe862c
|
||||
{ // line 1, address 0xe862c
|
||||
struct tNode n; // stack address -56
|
||||
int fx; // $v1
|
||||
int fz; // $v0
|
||||
{ // line 1, address 0xe8660
|
||||
{ // line 1, address 0xe8660
|
||||
int dz; // $a0
|
||||
int dx; // $v0
|
||||
} // line 1, address 0xe8660
|
||||
} // line 1, address 0xe8660
|
||||
{ // line 1, address 0xe8660
|
||||
{ // line 1, address 0xe8660
|
||||
unsigned int parent; // $a2
|
||||
unsigned int i; // $a3
|
||||
} // line 1, address 0xe8774
|
||||
} // line 1, address 0xe8774
|
||||
{ // line 53, address 0xe8774
|
||||
{ // line 53, address 0xe8774
|
||||
int dz; // $a0
|
||||
int dx; // $v0
|
||||
} // line 53, address 0xe8774
|
||||
} // line 53, address 0xe8774
|
||||
{ // line 53, address 0xe8774
|
||||
{ // line 53, address 0xe8774
|
||||
unsigned int parent; // $a2
|
||||
unsigned int i; // $a3
|
||||
} // line 54, address 0xe88b4
|
||||
} // line 54, address 0xe88b4
|
||||
{ // line 56, address 0xe88b4
|
||||
{ // line 56, address 0xe88b4
|
||||
int dz; // $a0
|
||||
int dx; // $v0
|
||||
} // line 56, address 0xe88b4
|
||||
} // line 56, address 0xe88b4
|
||||
{ // line 56, address 0xe88b4
|
||||
{ // line 56, address 0xe88b4
|
||||
unsigned int parent; // $a2
|
||||
unsigned int i; // $a3
|
||||
} // line 57, address 0xe89bc
|
||||
} // line 57, address 0xe89bc
|
||||
{ // line 1, address 0xe89c4
|
||||
{ // line 1, address 0xe89c4
|
||||
int dz; // $a0
|
||||
int dx; // $v0
|
||||
} // line 1, address 0xe89c4
|
||||
} // line 1, address 0xe89c4
|
||||
{ // line 1, address 0xe89c4
|
||||
{ // line 1, address 0xe89c4
|
||||
unsigned int parent; // $a2
|
||||
unsigned int i; // $a3
|
||||
} // line 1, address 0xe8ad8
|
||||
} // line 1, address 0xe8ad8
|
||||
{ // line 63, address 0xe8ad8
|
||||
{ // line 63, address 0xe8ad8
|
||||
int dz; // $a0
|
||||
int dx; // $v0
|
||||
} // line 63, address 0xe8ad8
|
||||
} // line 63, address 0xe8ad8
|
||||
{ // line 63, address 0xe8ad8
|
||||
{ // line 63, address 0xe8ad8
|
||||
unsigned int parent; // $a2
|
||||
unsigned int i; // $a3
|
||||
} // line 64, address 0xe8c18
|
||||
} // line 64, address 0xe8c18
|
||||
{ // line 66, address 0xe8c18
|
||||
{ // line 66, address 0xe8c18
|
||||
int dz; // $a0
|
||||
int dx; // $v0
|
||||
} // line 66, address 0xe8c18
|
||||
} // line 66, address 0xe8c18
|
||||
{ // line 66, address 0xe8c18
|
||||
{ // line 66, address 0xe8c18
|
||||
unsigned int parent; // $a2
|
||||
unsigned int i; // $a3
|
||||
} // line 66, address 0xe8d18
|
||||
} // line 66, address 0xe8d18
|
||||
} // line 66, address 0xe8d18
|
||||
} // line 66, address 0xe8d18
|
||||
{ // line 77, address 0xe8d54
|
||||
int i; // $s0
|
||||
{ // line 1, address 0xe8df4
|
||||
} // line 1, address 0xe8dfc
|
||||
} // line 91, address 0xe8dfc
|
||||
{ // line 94, address 0xe8dfc
|
||||
int i; // $a1
|
||||
int maxRet; // $a0
|
||||
} // line 105, address 0xe8e70
|
||||
{ // line 108, address 0xe8e70
|
||||
int dx; // $a0
|
||||
int dy; // $v1
|
||||
int dz; // $v0
|
||||
} // line 112, address 0xe8f00
|
||||
} // line 113, address 0xe8f00
|
||||
/*
|
||||
* Offset 0xE8F00
|
||||
* D:\driver2\game\C\PATHFIND.C (line 1050)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
int /*$ra*/ getHeadingToPlayer(int vx /*$s4*/, int vy /*$a1*/, int vz /*$s3*/)
|
||||
{ // line 1, address 0xe8f00
|
||||
int d1; // $s2
|
||||
int d2; // $s1
|
||||
int d3; // $s0
|
||||
struct VECTOR pos; // stack address -48
|
||||
{ // line 1, address 0xe8f00
|
||||
int dx; // $a3
|
||||
int dy; // $v1
|
||||
int dz; // $v0
|
||||
int playerHereDistSq; // $a3
|
||||
{ // line 21, address 0xe8f98
|
||||
} // line 23, address 0xe8f98
|
||||
} // line 24, address 0xe8f98
|
||||
{ // line 48, address 0xe8ff8
|
||||
} // line 50, address 0xe9024
|
||||
{ // line 52, address 0xe9030
|
||||
} // line 60, address 0xe9058
|
||||
{ // line 56, address 0xe9058
|
||||
} // line 61, address 0xe90a4
|
||||
} // line 62, address 0xe90a4
|
||||
/*
|
||||
* Offset 0xE90A4
|
||||
* D:\driver2\game\C\PATHFIND.C (line 659)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ setDistance(struct tNode *n /*$a0*/, unsigned short dist /*$a1*/)
|
||||
{
|
||||
}
|
415
src/C/pause.c
Normal file
415
src/C/pause.c
Normal file
@ -0,0 +1,415 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
void PauseMap(int direction);
|
||||
void SfxVolume(int direction);
|
||||
void MusicVolume(int direction);
|
||||
void SaveReplay(int direction);
|
||||
void SaveGame(int direction);
|
||||
void EnterName();
|
||||
|
||||
char EnterScoreText[32] = { 0 };
|
||||
|
||||
MENU_ITEM MainPauseItems[9] =
|
||||
{
|
||||
{ "Resume", 1u, 2u, NULL, MENU_QUIT_CONTINUE, NULL },
|
||||
{ "View map", 3u, 2u, &PauseMap, MENU_QUIT_NONE, NULL },
|
||||
{ "Restart", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoRestartHeader },
|
||||
{ "Effects volume", 13u, 2u, &SfxVolume, MENU_QUIT_NONE, NULL },
|
||||
{ "Music volume", 21u, 2u, &MusicVolume, MENU_QUIT_NONE, NULL },
|
||||
{ "Film director", 1u, 2u, NULL, MENU_QUIT_DIRECTOR, NULL},
|
||||
{ "Quick replay",1u,2u,NULL,MENU_QUIT_QUICKREPLAY,NULL},
|
||||
{ "Exit", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoQuitHeader },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
MENU_ITEM MultiplayerPauseItems[7] =
|
||||
{
|
||||
{ "Resume", 1u, 2u, NULL, MENU_QUIT_CONTINUE, NULL },
|
||||
{ "Restart", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoRestartHeader },
|
||||
{ "Effects volume", 13u, 2u, &SfxVolume, MENU_QUIT_NONE, NULL },
|
||||
{ "Music volume", 21u, 2u, &MusicVolume, MENU_QUIT_NONE, NULL },
|
||||
{ "Quick replay",1u,2u,NULL,MENU_QUIT_QUICKREPLAY,NULL},
|
||||
{ "Exit", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoQuitHeader },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
|
||||
MENU_ITEM CutscenePauseItems[6] =
|
||||
{
|
||||
{ "Continue", 1u, 2u, NULL, MENU_QUIT_CONTINUE, NULL },
|
||||
{ "Restart", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoRestartHeader },
|
||||
{ "Effects volume", 13u, 2u, &SfxVolume, MENU_QUIT_NONE, NULL },
|
||||
{ "Music volume", 21u, 2u, &MusicVolume, MENU_QUIT_NONE, NULL },
|
||||
{ "Exit", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoQuitHeader },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
MENU_ITEM MissionCompleteItems[8] =
|
||||
{
|
||||
{ "Save game", 3u, 2u, &SaveGame, MENU_QUIT_NONE, NULL },
|
||||
{ "Next mission", 1u, 2u, NULL, MENU_QUIT_NEXTMISSION, NULL },
|
||||
{ "Film director",1u,2u,NULL,MENU_QUIT_DIRECTOR,NULL},
|
||||
{ "Quick replay",1u,2u,NULL,MENU_QUIT_QUICKREPLAY,NULL},
|
||||
{ "Save replay", 3u, 2u, &SaveReplay, MENU_QUIT_NONE, NULL },
|
||||
{ "Restart", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoRestartHeader },
|
||||
{ "Exit", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoQuitHeader },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
MENU_ITEM MissionFailedItems[6] =
|
||||
{
|
||||
{ "Film director",1u,2u,NULL,MENU_QUIT_DIRECTOR,NULL},
|
||||
{ "Quick replay",1u,2u,NULL,MENU_QUIT_QUICKREPLAY,NULL},
|
||||
{ "Exit", 3u, 2u, &SaveReplay, MENU_QUIT_NONE, NULL },
|
||||
{ "Retry mission",65u,2u,NULL,MENU_QUIT_NONE,&YesNoRestartHeader },
|
||||
{ "Exit", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoQuitHeader },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
MENU_ITEM TakeARideFinishedItems[6] =
|
||||
{
|
||||
{ "Restart", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoRestartHeader },
|
||||
{ "Film director",1u,2u,NULL,MENU_QUIT_DIRECTOR,NULL},
|
||||
{ "Quick replay",1u,2u,NULL,MENU_QUIT_QUICKREPLAY,NULL},
|
||||
{ "Save replay", 3u, 2u, &SaveReplay, MENU_QUIT_NONE, NULL },
|
||||
{ "Exit", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoQuitHeader },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
MENU_ITEM DrivingGameFinishedItems[7] =
|
||||
{
|
||||
{ "Try again", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoRestartHeader },
|
||||
{ &EnterScoreText, 3u, 2u, &EnterName, MENU_QUIT_NONE, NULL },
|
||||
{ "Film director",1u,2u,NULL,MENU_QUIT_DIRECTOR,NULL},
|
||||
{ "Quick replay",1u,2u,NULL,MENU_QUIT_QUICKREPLAY,NULL},
|
||||
{ "Save replay", 3u, 2u, &SaveReplay, MENU_QUIT_NONE, NULL },
|
||||
{ "Exit", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoQuitHeader },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
MENU_ITEM MultiplayerFinishedItems[5] =
|
||||
{
|
||||
{ "Try again", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoRestartHeader },
|
||||
{ "Quick replay",1u,2u,NULL,MENU_QUIT_QUICKREPLAY,NULL},
|
||||
{ "Save replay", 3u, 2u, &SaveReplay, MENU_QUIT_NONE, NULL },
|
||||
{ "Exit", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoQuitHeader },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
MENU_ITEM ChaseGameFinishedItems[6] =
|
||||
{
|
||||
{ "Try again", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoRestartHeader },
|
||||
{ "Film director",1u,2u,NULL,MENU_QUIT_DIRECTOR,NULL},
|
||||
{ "Quick replay",1u,2u,NULL,MENU_QUIT_QUICKREPLAY,NULL},
|
||||
{ "Save replay", 3u, 2u, &SaveReplay, MENU_QUIT_NONE, NULL },
|
||||
{ "Exit", 65u, 2u, NULL, MENU_QUIT_NONE, &YesNoQuitHeader },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
MENU_ITEM YesNoRestartItems[3] =
|
||||
{
|
||||
{ "NO", 1u, 2u, NULL, MENU_QUIT_BACKMENU, NULL },
|
||||
{ "YES", 1u, 2u, NULL, MENU_QUIT_RESTART, NULL },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
MENU_ITEM YesNoQuitItems[3] =
|
||||
{
|
||||
{ "NO", 1u, 2u, NULL, MENU_QUIT_BACKMENU, NULL },
|
||||
{ "YES", 1u, 2u, NULL, MENU_QUIT_QUIT, NULL },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
MENU_ITEM NoPadItems[1] =
|
||||
{
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL}
|
||||
};
|
||||
|
||||
MENU_ITEM NoMultiPadItems[2] =
|
||||
{
|
||||
{ "Exit", 1u, 2u, NULL, MENU_QUIT_QUIT, NULL },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
MENU_ITEM InvalidPadItems[1] =
|
||||
{
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL}
|
||||
};
|
||||
|
||||
MENU_ITEM InvalidMultiPadItems[2] =
|
||||
{
|
||||
{ "Exit", 1u, 2u, NULL, MENU_QUIT_QUIT, NULL },
|
||||
{ NULL, 128u, 0u, NULL, MENU_QUIT_NONE, NULL }
|
||||
};
|
||||
|
||||
MENU_HEADER PauseMenuHeader =
|
||||
{ "Game paused", { 0, 0, 0, 0 }, 0u, MainPauseItems };
|
||||
|
||||
MENU_HEADER MultiplayerPauseHeader =
|
||||
{ "Game paused", { 0, 0, 0, 0 }, 0u, MultiplayerPauseItems };
|
||||
|
||||
MENU_HEADER CutscenePauseMenuHeader =
|
||||
{ "Game paused", { 0, 0, 0, 0 }, 0u, CutscenePauseItems };
|
||||
|
||||
MENU_HEADER MissionCompleteHeader =
|
||||
{ "Mission successful", { 0, 0, 0, 0 }, 0u, MissionCompleteItems };
|
||||
|
||||
MENU_HEADER MissionFailedHeader =
|
||||
{ "Mission failed", { 0, 0, 0, 0 }, 0u, MissionFailedItems };
|
||||
|
||||
MENU_HEADER TakeARideFinishedHeader =
|
||||
{ "Game over", { 0, 0, 0, 0 }, 0u, TakeARideFinishedItems };
|
||||
|
||||
MENU_HEADER DrivingGameFinishedHeader =
|
||||
{ "Game over", { 0, 0, 0, 0 }, 0u, DrivingGameFinishedItems };
|
||||
|
||||
MENU_HEADER MultiplayerFinishedHeader =
|
||||
{ "Game over", { 0, 0, 0, 0 }, 0u, MultiplayerFinishedItems };
|
||||
|
||||
MENU_HEADER ChaseGameFinishedHeader =
|
||||
{ "Game over", { 0, 0, 0, 0 }, 0u, ChaseGameFinishedItems };
|
||||
|
||||
MENU_HEADER NoPadHeader =
|
||||
{
|
||||
"Insert controller in slot 1",
|
||||
{ 0, 0, 0, 0 },
|
||||
0u,
|
||||
NoPadItems
|
||||
};
|
||||
|
||||
MENU_HEADER NoMultiPadHeader =
|
||||
{
|
||||
"Insert controller in slot 1",
|
||||
{ 0, 0, 0, 0 },
|
||||
0u,
|
||||
NoMultiPadItems
|
||||
};
|
||||
|
||||
MENU_HEADER InvalidPadHeader =
|
||||
{
|
||||
"Incompatible controller in port 1",
|
||||
{ 0, 0, 0, 0 },
|
||||
0u,
|
||||
InvalidPadItems
|
||||
};
|
||||
|
||||
MENU_HEADER InvalidMultiPadHeader =
|
||||
{
|
||||
"Incompatible controller in port 1",
|
||||
{ 0, 0, 0, 0 },
|
||||
0u,
|
||||
InvalidMultiPadItems
|
||||
};
|
||||
|
||||
int playerwithcontrol[3] = { 0 };
|
||||
|
||||
MENU_HEADER YesNoRestartHeader =
|
||||
{ "Are you sure?", { 0, 0, 0, 0 }, 0u, YesNoRestartItems };
|
||||
|
||||
MENU_HEADER YesNoQuitHeader =
|
||||
{ "Are you sure?", { 0, 0, 0, 0 }, 0u, YesNoQuitItems };
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x6BFB8
|
||||
* D:\driver2\game\C\PAUSE.C (line 1004)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
int /*$ra*/ ShowPauseMenu(enum PAUSEMODE mode /*$s0*/)
|
||||
{ // line 1, address 0x6bfb8
|
||||
enum PAUSEMODE passed_mode; // $s2
|
||||
{ // line 58, address 0x6c128
|
||||
} // line 81, address 0x6c1a8
|
||||
{ // line 88, address 0x6c1e0
|
||||
struct RECT rect; // stack address -32
|
||||
} // line 97, address 0x6c264
|
||||
} // line 133, address 0x6c314
|
||||
/*
|
||||
* Offset 0x6C314
|
||||
* D:\driver2\game\C\PAUSE.C (line 1216)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitaliseMenu(enum PAUSEMODE mode /*$a2*/)
|
||||
{ // line 1, address 0x6c314
|
||||
struct MENU_ITEM *pItem; // $a0
|
||||
int i; // $a1
|
||||
} // line 172, address 0x6c720
|
||||
/*
|
||||
* Offset 0x6C720
|
||||
* D:\driver2\game\C\PAUSE.C (line 1401)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetupMenu(struct MENU_HEADER *menu /*$a0*/, int back /*$a1*/)
|
||||
{ // line 1, address 0x6c720
|
||||
struct MENU_ITEM *pItem; // $a2
|
||||
int count; // $a3
|
||||
} // line 30, address 0x6c85c
|
||||
/*
|
||||
* Offset 0x6C85C
|
||||
* D:\driver2\game\C\PAUSE.C (line 1443)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawVisibleMenus()
|
||||
{ // line 2, address 0x6c85c
|
||||
struct MENU_HEADER *pActive; // $s5
|
||||
struct MENU_ITEM *pItem; // $s1
|
||||
struct POLY_FT3 *null; // $a0
|
||||
int i; // stack address -48
|
||||
int ypos; // $s3
|
||||
int xpos; // $fp
|
||||
int width; // $s4
|
||||
{ // line 30, address 0x6c928
|
||||
unsigned char r; // $s6
|
||||
unsigned char b; // $s7
|
||||
int x1; // $s0
|
||||
int x2; // $s2
|
||||
} // line 66, address 0x6caa8
|
||||
} // line 85, address 0x6cc50
|
||||
/*
|
||||
* Offset 0x6CC50
|
||||
* D:\driver2\game\C\PAUSE.C (line 1543)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ControlMenu()
|
||||
{ // line 2, address 0x6cc50
|
||||
static int debounce; // address 0x38
|
||||
unsigned short paddata; // $a2
|
||||
unsigned short paddirect; // $a3
|
||||
{ // line 53, address 0x6cd3c
|
||||
int doit; // $v1
|
||||
} // line 78, address 0x6cde0
|
||||
{ // line 132, address 0x6cfbc
|
||||
int i; // $a0
|
||||
} // line 139, address 0x6d020
|
||||
{ // line 149, address 0x6d040
|
||||
int i; // $a0
|
||||
} // line 160, address 0x6d09c
|
||||
} // line 162, address 0x6d09c
|
||||
/*
|
||||
* Offset 0x6D0AC
|
||||
* D:\driver2\game\C\PAUSE.C (line 1787)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ EnterScoreName()
|
||||
{ // line 2, address 0x6d0ac
|
||||
struct SCORE_ENTRY *table; // stack address -40
|
||||
char *username; // $s3
|
||||
unsigned short npad; // $a1
|
||||
int so; // $s0
|
||||
int co; // $s1
|
||||
int delay; // $s2
|
||||
char c; // $a0
|
||||
char toggle; // $s6
|
||||
} // line 154, address 0x6d38c
|
||||
/*
|
||||
* Offset 0x6D38C
|
||||
* D:\driver2\game\C\PAUSE.C (line 1943)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ CreateScoreNames(struct SCORE_ENTRY *table /*$s0*/, struct PLAYER_SCORE *score /*stack 4*/, int position /*stack 8*/)
|
||||
{ // line 1, address 0x6d38c
|
||||
char *text; // $s1
|
||||
int min; // $t1
|
||||
int frac; // $v0
|
||||
int i; // $s5
|
||||
} // line 69, address 0x6d6cc
|
||||
/*
|
||||
* Offset 0x6D6FC
|
||||
* D:\driver2\game\C\PAUSE.C (line 2020)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawHighScoreMenu(int selection /*stack 0*/)
|
||||
{ // line 1, address 0x6d6fc
|
||||
struct POLY_FT3 *null; // $a0
|
||||
char text[4]; // stack address -48
|
||||
unsigned char r; // $s3
|
||||
unsigned char g; // $s5
|
||||
unsigned char b; // $s2
|
||||
int i; // $s0
|
||||
int ypos; // $s4
|
||||
} // line 55, address 0x6da18
|
||||
/*
|
||||
* Offset 0x6DA18
|
||||
* D:\driver2\game\C\PAUSE.C (line 1153)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SaveReplay(int direction /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x6DA3C
|
||||
* D:\driver2\game\C\PAUSE.C (line 1158)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SaveGame(int direction /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x6DA60
|
||||
* D:\driver2\game\C\PAUSE.C (line 1163)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ EnterName()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x6DA80
|
||||
* D:\driver2\game\C\PAUSE.C (line 1185)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
int /*$ra*/ MaxMenuStringLength(struct MENU_HEADER *pMenu /*$v0*/)
|
||||
{ // line 1, address 0x6da80
|
||||
struct MENU_ITEM *pItems; // $s1
|
||||
int max; // $s2
|
||||
int temp; // $s0
|
||||
} // line 21, address 0x6db38
|
||||
/*
|
||||
* Offset 0x6DB38
|
||||
* D:\driver2\game\C\PAUSE.C (line 1710)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ PauseMap(int direction /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x6DB9C
|
||||
* D:\driver2\game\C\PAUSE.C (line 1725)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SfxVolume(int direction /*$a0*/)
|
||||
{ // line 1, address 0x6db9c
|
||||
} // line 19, address 0x6dc6c
|
||||
/*
|
||||
* Offset 0x6DC6C
|
||||
* D:\driver2\game\C\PAUSE.C (line 1746)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ MusicVolume(int direction /*$a0*/)
|
||||
{ // line 1, address 0x6dc6c
|
||||
} // line 19, address 0x6dd3c
|
||||
/*
|
||||
* Offset 0x6DD3C
|
||||
* D:\driver2\game\C\PAUSE.C (line 1139)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DrawPauseMenus()
|
||||
{
|
||||
}
|
851
src/C/pedest.c
Normal file
851
src/C/pedest.c
Normal file
@ -0,0 +1,851 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
MODEL* pmTannerModels[17] = {0};
|
||||
|
||||
typedef void (*pedFunc)(struct PEDESTRIAN *pPed);
|
||||
|
||||
void PedDoNothing(struct PEDESTRIAN *pPed);
|
||||
void PedUserWalker(struct PEDESTRIAN *pPed);
|
||||
void PedUserRunner(struct PEDESTRIAN *pPed);
|
||||
void PedGetInCar(struct PEDESTRIAN *pPed);
|
||||
void PedGetOutCar(struct PEDESTRIAN *pPed);
|
||||
void PedCarryOutAnimation(struct PEDESTRIAN *pPed);
|
||||
void CivPedDoNothing(struct PEDESTRIAN *pPed);
|
||||
void CivPedWalk(struct PEDESTRIAN *pPed);
|
||||
void CivPedSit(struct PEDESTRIAN *pPed);
|
||||
void CivPedJump(struct PEDESTRIAN *pPed);
|
||||
void PedPressButton(struct PEDESTRIAN *pPed);
|
||||
void TannerSitDown(struct PEDESTRIAN *pPed);
|
||||
void CopStand(struct PEDESTRIAN *pPed);
|
||||
void CivGetIn(struct PEDESTRIAN *pPed);
|
||||
|
||||
pedFunc fpPedPersonalityFunctions[] = {
|
||||
PedDoNothing, PedUserWalker, PedUserRunner,
|
||||
PedGetInCar, PedGetOutCar,
|
||||
PedCarryOutAnimation,
|
||||
CivPedDoNothing, CivPedWalk, CivPedSit, CivPedJump,
|
||||
PedPressButton, TannerSitDown, CopStand, CivGetIn };
|
||||
|
||||
VECTOR tannerLookAngle = { 0, 0, 0, 0 };
|
||||
|
||||
long force[4] = { 0x9000, 0, 0, 0 };
|
||||
long point[4] = { 0, 0, 0x5A, 0 };
|
||||
|
||||
/*
|
||||
* Offset 0x6DD9C
|
||||
* D:\driver2\game\C\PEDEST.C (line 1137)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ IHaveThePower()
|
||||
{ // line 2, address 0x6dd9c
|
||||
struct _CAR_DATA *cp; // $t4
|
||||
{ // line 15, address 0x6de20
|
||||
} // line 33, address 0x6df88
|
||||
} // line 45, address 0x6dfbc
|
||||
/*
|
||||
* Offset 0x6DFBC
|
||||
* D:\driver2\game\C\PEDEST.C (line 1191)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ ProcessTannerPad(struct PEDESTRIAN *pPed /*$s1*/, unsigned long pad /*$a1*/, char PadSteer /*$a2*/, char use_analogue /*$a3*/)
|
||||
{ // line 1, address 0x6dfbc
|
||||
struct VECTOR vec; // stack address -88
|
||||
int mapheight; // $s2
|
||||
struct VECTOR normal; // stack address -72
|
||||
struct VECTOR out; // stack address -56
|
||||
struct _sdPlane *SurfacePtr; // stack address -24
|
||||
{ // line 33, address 0x6e030
|
||||
struct VECTOR tVec; // stack address -40
|
||||
struct _sdPlane *plane; // $v0
|
||||
int mH; // $v1
|
||||
int sI; // $a0
|
||||
} // line 86, address 0x6e16c
|
||||
{ // line 168, address 0x6e3f8
|
||||
} // line 174, address 0x6e458
|
||||
} // line 176, address 0x6e458
|
||||
/*
|
||||
* Offset 0x6E470
|
||||
* D:\driver2\game\C\PEDEST.C (line 1375)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ InitTanner()
|
||||
{ // line 2, address 0x6e470
|
||||
} // line 58, address 0x6e62c
|
||||
/*
|
||||
* Offset 0x6E62C
|
||||
* D:\driver2\game\C\PEDEST.C (line 1466)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ InitPedestrians()
|
||||
{ // line 2, address 0x6e62c
|
||||
int loop; // $a1
|
||||
struct SEATED_PEDESTRIANS *seatedptr; // $s2
|
||||
} // line 47, address 0x6e72c
|
||||
/*
|
||||
* Offset 0x6E72C
|
||||
* D:\driver2\game\C\PEDEST.C (line 1623)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ ActivatePlayerPedestrian(struct _CAR_DATA *pCar /*$s6*/, char *padId /*stack 4*/, int direction /*$a1*/, long *position[4] /*$a3*/, int playerType /*stack 16*/)
|
||||
{ // line 1, address 0x6e72c
|
||||
struct PEDESTRIAN *pPed; // $s1
|
||||
struct PEDESTRIAN *pSPed; // $a0
|
||||
struct VECTOR v; // stack address -72
|
||||
int nx; // $s4
|
||||
int nz; // $s2
|
||||
long w; // $s0
|
||||
long x; // $s5
|
||||
long y; // stack address -52
|
||||
long z; // $s1
|
||||
long d; // stack address -48
|
||||
int side; // $fp
|
||||
int id; // $s3
|
||||
{ // line 65, address 0x6e83c
|
||||
{ // line 140, address 0x6eab0
|
||||
} // line 140, address 0x6eab0
|
||||
{ // line 184, address 0x6ebb0
|
||||
} // line 184, address 0x6ebb0
|
||||
} // line 184, address 0x6ebb0
|
||||
} // line 212, address 0x6ecf0
|
||||
/*
|
||||
* Offset 0x6ECF0
|
||||
* D:\driver2\game\C\PEDEST.C (line 1877)
|
||||
* Stack frame base $sp, length 168
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ PlaceRoadBlockCops()
|
||||
{ // line 2, address 0x6ecf0
|
||||
struct _CAR_DATA *pCar; // $a0
|
||||
struct _CAR_DATA *pCopCars[16]; // stack address -152
|
||||
int numCops; // $fp
|
||||
{ // line 19, address 0x6ed84
|
||||
int x; // $s2
|
||||
int z; // $s0
|
||||
int w; // $s0
|
||||
int i; // $s7
|
||||
int s1; // $s1
|
||||
int s2; // $a3
|
||||
struct VECTOR vert; // stack address -88
|
||||
long disp[4]; // stack address -72
|
||||
long dir[4]; // stack address -56
|
||||
int alpha; // $s1
|
||||
} // line 89, address 0x6f044
|
||||
} // line 91, address 0x6f044
|
||||
/*
|
||||
* Offset 0x6F074
|
||||
* D:\driver2\game\C\PEDEST.C (line 1975)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ CreatePedAtLocation(long *pPos[4] /*$s2*/, int pedType /*$s1*/)
|
||||
{ // line 1, address 0x6f074
|
||||
struct PEDESTRIAN *pPed; // $s0
|
||||
} // line 70, address 0x6f1d4
|
||||
/*
|
||||
* Offset 0x6F1D4
|
||||
* D:\driver2\game\C\PEDEST.C (line 2168)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ ControlPedestrians()
|
||||
{ // line 2, address 0x6f1d4
|
||||
struct PEDESTRIAN *pPed; // $s0
|
||||
struct PEDESTRIAN *pPedNext; // $s2
|
||||
struct _CAR_DATA *pCar; // $v0
|
||||
{ // line 57, address 0x6f2d4
|
||||
} // line 65, address 0x6f318
|
||||
} // line 73, address 0x6f344
|
||||
/*
|
||||
* Offset 0x6F344
|
||||
* D:\driver2\game\C\PEDEST.C (line 2385)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ PedDoNothing(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x6F614
|
||||
* D:\driver2\game\C\PEDEST.C (line 2523)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ PedUserRunner(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{ // line 1, address 0x6f614
|
||||
} // line 109, address 0x6f874
|
||||
/*
|
||||
* Offset 0x6F874
|
||||
* D:\driver2\game\C\PEDEST.C (line 2827)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ SetupGetOutCar(struct PEDESTRIAN *pPed /*$s5*/, struct _CAR_DATA *pCar /*$s3*/, int side /*$s7*/)
|
||||
{ // line 1, address 0x6f874
|
||||
int alpha; // $s2
|
||||
long disp[4]; // stack address -80
|
||||
long dir[4]; // stack address -64
|
||||
struct SVECTOR vert; // stack address -48
|
||||
int x; // $s4
|
||||
int z; // $s0
|
||||
int a; // $s6
|
||||
int nx; // $a3
|
||||
int nz; // $a1
|
||||
} // line 64, address 0x6faa4
|
||||
/*
|
||||
* Offset 0x6FAA4
|
||||
* D:\driver2\game\C\PEDEST.C (line 2898)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ SetupGetInCar(struct PEDESTRIAN *pPed /*$s2*/)
|
||||
{ // line 1, address 0x6faa4
|
||||
int alpha; // $s1
|
||||
long disp[4]; // stack address -72
|
||||
long dir[4]; // stack address -56
|
||||
struct SVECTOR vert; // stack address -40
|
||||
{ // line 36, address 0x6fb94
|
||||
int x; // $t1
|
||||
int z; // $t2
|
||||
int a; // $a0
|
||||
int nx; // $a3
|
||||
int nz; // $a1
|
||||
} // line 59, address 0x6fc8c
|
||||
{ // line 70, address 0x6fcd8
|
||||
long pos[4]; // stack address -32
|
||||
} // line 71, address 0x6fcd8
|
||||
} // line 90, address 0x6fd70
|
||||
/*
|
||||
* Offset 0x6FD70
|
||||
* D:\driver2\game\C\PEDEST.C (line 3074)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ TannerCameraHandler(struct PEDESTRIAN *pPed /*$a0*/)
|
||||
{ // line 2, address 0x6fd70
|
||||
int padsteer; // $a3
|
||||
int maxY; // $t1
|
||||
int maxX; // $t5
|
||||
int range; // $t0
|
||||
int minX; // $t4
|
||||
int extra; // $a3
|
||||
} // line 76, address 0x6ffb0
|
||||
/*
|
||||
* Offset 0x6FFB0
|
||||
* D:\driver2\game\C\PEDEST.C (line 3157)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ TannerSitDown(struct PEDESTRIAN *pPed /*$a2*/)
|
||||
{ // line 1, address 0x6ffb0
|
||||
struct VECTOR angle; // stack address -24
|
||||
} // line 62, address 0x70138
|
||||
/*
|
||||
* Offset 0x70138
|
||||
* D:\driver2\game\C\PEDEST.C (line 3227)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ AnimatePed(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{ // line 1, address 0x70138
|
||||
{ // line 11, address 0x70158
|
||||
int mapheight; // $a3
|
||||
int reverse; // $s1
|
||||
{ // line 14, address 0x70158
|
||||
struct VECTOR vec; // stack address -32
|
||||
} // line 39, address 0x701c4
|
||||
{ // line 103, address 0x70374
|
||||
int sfc; // $v1
|
||||
} // line 108, address 0x70424
|
||||
} // line 121, address 0x704d0
|
||||
} // line 123, address 0x704d0
|
||||
/*
|
||||
* Offset 0x704E4
|
||||
* D:\driver2\game\C\PEDEST.C (line 3447)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ PingInPedestrians()
|
||||
{ // line 2, address 0x704e4
|
||||
int bFound; // $s1
|
||||
struct VECTOR randomLoc; // stack address -88
|
||||
struct VECTOR baseLoc; // stack address -72
|
||||
int i; // $s2
|
||||
int pingInDist; // $a2
|
||||
struct VECTOR position; // stack address -56
|
||||
struct VECTOR target; // stack address -40
|
||||
struct PEDESTRIAN *pedestrian; // $s1
|
||||
{ // line 37, address 0x70580
|
||||
{ // line 55, address 0x70660
|
||||
struct PEDESTRIAN *pPed; // $a2
|
||||
{ // line 73, address 0x70690
|
||||
int x; // $v1
|
||||
int z; // $v0
|
||||
int radius; // $v1
|
||||
} // line 75, address 0x70690
|
||||
} // line 77, address 0x706dc
|
||||
} // line 79, address 0x706dc
|
||||
{ // line 87, address 0x70714
|
||||
{ // line 136, address 0x7085c
|
||||
int rval; // $v1
|
||||
} // line 175, address 0x708c0
|
||||
} // line 180, address 0x708c0
|
||||
} // line 185, address 0x708c0
|
||||
/*
|
||||
* Offset 0x708E0
|
||||
* D:\driver2\game\C\PEDEST.C (line 3685)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
int /*$ra*/ FindPointOfCollision(struct _CAR_DATA *pCar /*$s3*/, struct VECTOR *pPos /*$a1*/)
|
||||
{ // line 1, address 0x708e0
|
||||
int tb1; // $v1
|
||||
int tb2; // $v0
|
||||
int minX; // $a3
|
||||
int maxX; // $t0
|
||||
int minZ; // $v0
|
||||
int maxZ; // $a0
|
||||
int x; // $t1
|
||||
int z; // $a1
|
||||
int s1; // $a2
|
||||
int s2; // $v1
|
||||
int carLength[2]; // stack address -40
|
||||
static struct CRET2D collisionResult; // address 0x0
|
||||
} // line 68, address 0x70b04
|
||||
/*
|
||||
* Offset 0x70B04
|
||||
* D:\driver2\game\C\PEDEST.C (line 3762)
|
||||
* Stack frame base $sp, length 136
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ TannerCarCollisionCheck(struct VECTOR *pPos /*$s5*/, int dir /*$a1*/, int bQuick /*stack 8*/)
|
||||
{ // line 1, address 0x70b04
|
||||
int carLength[2]; // stack address -120
|
||||
struct _CAR_DATA *cp0; // $s0
|
||||
struct _CAR_DATA *cp1; // $s1
|
||||
static struct CRET2D collisionResult; // address 0x30
|
||||
unsigned int dNewLBODY[2]; // stack address -112
|
||||
int speed; // $v0
|
||||
{ // line 36, address 0x70b94
|
||||
{ // line 36, address 0x70b94
|
||||
} // line 36, address 0x70b94
|
||||
{ // line 53, address 0x70c6c
|
||||
struct VECTOR velocity; // stack address -104
|
||||
long pointVel[4]; // stack address -88
|
||||
long reaction[4]; // stack address -72
|
||||
long lever[4]; // stack address -56
|
||||
int strikeVel; // $t1
|
||||
{ // line 84, address 0x70dec
|
||||
} // line 95, address 0x70dec
|
||||
{ // line 99, address 0x70e18
|
||||
int twistY; // $a2
|
||||
int lever_dot_n; // $a0
|
||||
int displacementsquared; // $a1
|
||||
int denom; // $a0
|
||||
} // line 112, address 0x70ef4
|
||||
} // line 133, address 0x71040
|
||||
} // line 142, address 0x71070
|
||||
} // line 145, address 0x710bc
|
||||
/*
|
||||
* Offset 0x710BC
|
||||
* D:\driver2\game\C\PEDEST.C (line 3946)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ SetupCivJump(struct PEDESTRIAN *pPed /*$s1*/, struct _CAR_DATA *cp /*$s0*/)
|
||||
{ // line 1, address 0x710bc
|
||||
long disp[4]; // stack address -48
|
||||
long dir[4]; // stack address -32
|
||||
int angle; // $s0
|
||||
{ // line 14, address 0x71128
|
||||
short scale; // $a2
|
||||
} // line 21, address 0x7114c
|
||||
{ // line 62, address 0x71250
|
||||
} // line 81, address 0x71314
|
||||
} // line 94, address 0x7138c
|
||||
/*
|
||||
* Offset 0x7138C
|
||||
* D:\driver2\game\C\PEDEST.C (line 4101)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ CivPedWalk(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{ // line 1, address 0x7138c
|
||||
int turn; // $a1
|
||||
int offset1; // $t0
|
||||
int offset2; // $v1
|
||||
int lookahead; // $s3
|
||||
int speed; // $s1
|
||||
} // line 81, address 0x71664
|
||||
/*
|
||||
* Offset 0x71664
|
||||
* D:\driver2\game\C\PEDEST.C (line 4508)
|
||||
* Stack frame base $sp, length 32
|
||||
*/
|
||||
void /*$ra*/ CorrectPathPosition(struct PEDESTRIAN *pedestrian /*$a0*/, struct VECTOR *position /*$a1*/)
|
||||
{ // line 2, address 0x71664
|
||||
struct VECTOR vec; // stack address -16
|
||||
} // line 102, address 0x71664
|
||||
/*
|
||||
* Offset 0x71670
|
||||
* D:\driver2\game\C\PEDEST.C (line 4619)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
int /*$ra*/ CalcPedestrianDirection(int last_dir /*$a0*/, int wx /*$s5*/, int wz /*$s6*/, struct VECTOR *target /*$s3*/)
|
||||
{ // line 1, address 0x71670
|
||||
int dir; // $s2
|
||||
int num; // $s1
|
||||
int rx; // $v1
|
||||
int rz; // $a0
|
||||
int mask; // $s0
|
||||
{ // line 50, address 0x71728
|
||||
} // line 62, address 0x71774
|
||||
} // line 115, address 0x71814
|
||||
/*
|
||||
* Offset 0x71814
|
||||
* D:\driver2\game\C\PEDEST.C (line 4984)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
struct SEATED_PEDESTRIANS * /*$ra*/ FindTannerASeat(struct PEDESTRIAN *pPed /*$t4*/)
|
||||
{ // line 1, address 0x71814
|
||||
struct SEATED_PEDESTRIANS *seatedptr; // $a2
|
||||
struct SEATED_PEDESTRIANS *theOne; // $t1
|
||||
int dx; // $a0
|
||||
int dz; // $v1
|
||||
int distsqr; // $v0
|
||||
int bestSqr; // $t2
|
||||
} // line 39, address 0x71930
|
||||
/*
|
||||
* Offset 0x71930
|
||||
* D:\driver2\game\C\PEDEST.C (line 5031)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ add_seated(struct SEATED_PEDESTRIANS *seatedptr /*$s0*/, int seat_index /*$s2*/)
|
||||
{ // line 1, address 0x71930
|
||||
struct PEDESTRIAN *pedestrian; // $s1
|
||||
int index; // $v0
|
||||
} // line 45, address 0x71aac
|
||||
/*
|
||||
* Offset 0x71AC4
|
||||
* D:\driver2\game\C\PEDEST.C (line 5084)
|
||||
* Stack frame base $sp, length 16
|
||||
*/
|
||||
void /*$ra*/ set_coll_box(int index /*$t2*/, struct _CAR_DATA *cp /*$t0*/, int address /*$t3*/)
|
||||
{ // line 1, address 0x71ac4
|
||||
struct VECTOR BoxCentre; // stack address -16
|
||||
int boxsize; // $t1
|
||||
} // line 26, address 0x71bdc
|
||||
/*
|
||||
* Offset 0x71BE4
|
||||
* D:\driver2\game\C\PEDEST.C (line 5118)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ BuildCarCollisionBox()
|
||||
{ // line 2, address 0x71be4
|
||||
struct _CAR_DATA *cp; // $s3
|
||||
int count1; // $s4
|
||||
int i; // $t1
|
||||
{ // line 28, address 0x71d24
|
||||
int x; // $a0
|
||||
int z; // $a2
|
||||
} // line 37, address 0x71dc0
|
||||
} // line 53, address 0x71e74
|
||||
/*
|
||||
* Offset 0x71E74
|
||||
* D:\driver2\game\C\PEDEST.C (line 5249)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ CalculatePedestrianInterest(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{ // line 1, address 0x71e74
|
||||
int interest; // $a2
|
||||
int dist; // $v1
|
||||
struct _CAR_DATA *pCar; // $a2
|
||||
struct VECTOR v1; // stack address -40
|
||||
struct VECTOR v2; // stack address -24
|
||||
} // line 69, address 0x71fac
|
||||
/*
|
||||
* Offset 0x71FBC
|
||||
* D:\driver2\game\C\PEDEST.C (line 1521)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DestroyPedestrians()
|
||||
{ // line 2, address 0x71fbc
|
||||
} // line 13, address 0x7201c
|
||||
/*
|
||||
* Offset 0x7201C
|
||||
* D:\driver2\game\C\PEDEST.C (line 1567)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ DestroyPedestrian(struct PEDESTRIAN *pPed /*$a1*/)
|
||||
{ // line 1, address 0x7201c
|
||||
{ // line 38, address 0x720cc
|
||||
struct SEATED_PEDESTRIANS *seatedptr; // $a0
|
||||
} // line 41, address 0x720f8
|
||||
} // line 49, address 0x72114
|
||||
/*
|
||||
* Offset 0x72114
|
||||
* D:\driver2\game\C\PEDEST.C (line 1842)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
struct PEDESTRIAN * /*$ra*/ CreatePedestrian()
|
||||
{ // line 2, address 0x72114
|
||||
} // line 27, address 0x7217c
|
||||
/*
|
||||
* Offset 0x72184
|
||||
* D:\driver2\game\C\PEDEST.C (line 4221)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ HandlePedestrians()
|
||||
{ // line 2, address 0x72184
|
||||
} // line 236, address 0x721c4
|
||||
/*
|
||||
* Offset 0x721D4
|
||||
* D:\driver2\game\C\PEDEST.C (line 3357)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DeActivatePlayerPedestrian(struct PEDESTRIAN *pPed /*$s3*/)
|
||||
{ // line 1, address 0x721d4
|
||||
int distToCarSq; // stack address -32
|
||||
struct _CAR_DATA *closestCar; // $s1
|
||||
struct _PLAYER *pPlayer; // $v0
|
||||
struct VECTOR point; // stack address -48
|
||||
int getIn; // $s2
|
||||
{ // line 27, address 0x72284
|
||||
} // line 38, address 0x722dc
|
||||
} // line 39, address 0x722f8
|
||||
/*
|
||||
* Offset 0x722F8
|
||||
* D:\driver2\game\C\PEDEST.C (line 2052)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ DrawAllPedestrians()
|
||||
{ // line 2, address 0x722f8
|
||||
struct PEDESTRIAN *pPed; // $s0
|
||||
int pedType; // $s2
|
||||
struct MATRIX mStore; // stack address -56
|
||||
{ // line 19, address 0x72384
|
||||
{ // line 26, address 0x723b4
|
||||
} // line 26, address 0x723b4
|
||||
} // line 33, address 0x723cc
|
||||
{ // line 49, address 0x7243c
|
||||
} // line 54, address 0x72468
|
||||
} // line 85, address 0x72498
|
||||
/*
|
||||
* Offset 0x72498
|
||||
* D:\driver2\game\C\PEDEST.C (line 2145)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ TannerActionHappening()
|
||||
{ // line 2, address 0x72498
|
||||
struct PEDESTRIAN *pPed; // $a0
|
||||
} // line 13, address 0x724e0
|
||||
/*
|
||||
* Offset 0x724E0
|
||||
* D:\driver2\game\C\PEDEST.C (line 1440)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetTannerPosition(struct VECTOR *pVec /*$a0*/)
|
||||
{ // line 1, address 0x724e0
|
||||
struct PEDESTRIAN *pPed; // $a1
|
||||
} // line 19, address 0x72568
|
||||
/*
|
||||
* Offset 0x72568
|
||||
* D:\driver2\game\C\PEDEST.C (line 4924)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetPedestrianTurn(struct PEDESTRIAN *pedestrian /*$a0*/, int turn /*$a1*/)
|
||||
{ // line 1, address 0x72568
|
||||
int dir; // $a2
|
||||
int speed; // $v1
|
||||
} // line 11, address 0x725ec
|
||||
/*
|
||||
* Offset 0x725EC
|
||||
* D:\driver2\game\C\PEDEST.C (line 5325)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ PedSurfaceType(struct VECTOR *ped_pos /*$a0*/)
|
||||
{ // line 5, address 0x725ec
|
||||
struct _sdPlane *sfc_ptr; // $v0
|
||||
} // line 10, address 0x72620
|
||||
/*
|
||||
* Offset 0x72620
|
||||
* D:\driver2\game\C\PEDEST.C (line 4845)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ IsPavement(int x /*$a0*/, int y /*$a1*/, int z /*$a2*/, struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{ // line 1, address 0x72620
|
||||
struct VECTOR vec; // stack address -24
|
||||
int r; // $v1
|
||||
} // line 72, address 0x726ac
|
||||
/*
|
||||
* Offset 0x726AC
|
||||
* D:\driver2\game\C\PEDEST.C (line 4943)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
struct SEATED_PEDESTRIANS * /*$ra*/ FindSeated()
|
||||
{ // line 2, address 0x726ac
|
||||
struct SEATED_PEDESTRIANS *seatedptr; // $s0
|
||||
{ // line 7, address 0x726d4
|
||||
int dx; // $v1
|
||||
int dz; // $v0
|
||||
int distsqr; // $v1
|
||||
int count1; // $a2
|
||||
} // line 32, address 0x7278c
|
||||
} // line 34, address 0x727a0
|
||||
/*
|
||||
* Offset 0x727A0
|
||||
* D:\driver2\game\C\PEDEST.C (line 5178)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
struct _CAR_DATA * /*$ra*/ CheckForCar(struct PEDESTRIAN *pedestrian /*$s3*/)
|
||||
{ // line 1, address 0x727a0
|
||||
int count; // $s0
|
||||
{ // line 5, address 0x727d8
|
||||
} // line 26, address 0x727f8
|
||||
{ // line 28, address 0x7281c
|
||||
} // line 35, address 0x7281c
|
||||
{ // line 39, address 0x72868
|
||||
} // line 43, address 0x72884
|
||||
} // line 45, address 0x728a4
|
||||
/*
|
||||
* Offset 0x728A4
|
||||
* D:\driver2\game\C\PEDEST.C (line 4465)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ PedestrianActionInit_WalkToTarget(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{ // line 1, address 0x728a4
|
||||
int dir; // $v1
|
||||
} // line 31, address 0x72920
|
||||
/*
|
||||
* Offset 0x72930
|
||||
* D:\driver2\game\C\PEDEST.C (line 3060)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetupTannerSitDown(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7296C
|
||||
* D:\driver2\game\C\PEDEST.C (line 3026)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetupPressButton(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x729AC
|
||||
* D:\driver2\game\C\PEDEST.C (line 2639)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ PedUserWalker(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{ // line 1, address 0x729ac
|
||||
static int speed; // address 0x80
|
||||
} // line 55, address 0x72a78
|
||||
/*
|
||||
* Offset 0x72A78
|
||||
* D:\driver2\game\C\PEDEST.C (line 2702)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ PedCarryOutAnimation(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x72BC4
|
||||
* D:\driver2\game\C\PEDEST.C (line 2994)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ PedGetInCar(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{ // line 1, address 0x72bc4
|
||||
long disp[4]; // stack address -48
|
||||
long dir[4]; // stack address -32
|
||||
struct SVECTOR vert; // stack address -16
|
||||
} // line 24, address 0x72c54
|
||||
/*
|
||||
* Offset 0x72C54
|
||||
* D:\driver2\game\C\PEDEST.C (line 2796)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ PedGetOutCar(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x72CF8
|
||||
* D:\driver2\game\C\PEDEST.C (line 3040)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ PedPressButton(struct PEDESTRIAN *pPed /*$v1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x72D48
|
||||
* D:\driver2\game\C\PEDEST.C (line 3402)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ CivPedDoNothing(struct PEDESTRIAN *pPed /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x72D50
|
||||
* D:\driver2\game\C\PEDEST.C (line 4190)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ CivPedSit(struct PEDESTRIAN *pPed /*$a0*/)
|
||||
{ // line 2, address 0x72d50
|
||||
} // line 18, address 0x72d58
|
||||
/*
|
||||
* Offset 0x72D58
|
||||
* D:\driver2\game\C\PEDEST.C (line 4047)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ CivPedJump(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{ // line 1, address 0x72d58
|
||||
} // line 26, address 0x72e08
|
||||
/*
|
||||
* Offset 0x72E08
|
||||
* D:\driver2\game\C\PEDEST.C (line 2353)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ CopStand(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{ // line 1, address 0x72e08
|
||||
struct VECTOR v; // stack address -24
|
||||
} // line 24, address 0x72e64
|
||||
/*
|
||||
* Offset 0x72E64
|
||||
* D:\driver2\game\C\PEDEST.C (line 2325)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ CivGetIn(struct PEDESTRIAN *pPed /*$s2*/)
|
||||
{ // line 1, address 0x72e64
|
||||
struct DRIVER2_STRAIGHT *str; // $s1
|
||||
struct DRIVER2_CURVE *crv; // $s0
|
||||
{ // line 1, address 0x72e64
|
||||
} // line 20, address 0x72f4c
|
||||
} // line 21, address 0x72f4c
|
||||
/*
|
||||
* Offset 0x72F4C
|
||||
* D:\driver2\game\C\PEDEST.C (line 3640)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ TannerCollision(struct PEDESTRIAN *pPed /*$s1*/)
|
||||
{ // line 1, address 0x72f4c
|
||||
} // line 35, address 0x73024
|
||||
/*
|
||||
* Offset 0x73038
|
||||
* D:\driver2\game\C\PEDEST.C (line 1541)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ DestroyCivPedestrians()
|
||||
{ // line 2, address 0x73038
|
||||
struct PEDESTRIAN *pPed; // $v1
|
||||
struct PEDESTRIAN *pHPed; // $s0
|
||||
} // line 18, address 0x730a0
|
||||
/*
|
||||
* Offset 0x730A0
|
||||
* D:\driver2\game\C\PEDEST.C (line 2256)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetupDoNowt(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x730E4
|
||||
* D:\driver2\game\C\PEDEST.C (line 2275)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetupWalker(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x73120
|
||||
* D:\driver2\game\C\PEDEST.C (line 2291)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetupRunner(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x73164
|
||||
* D:\driver2\game\C\PEDEST.C (line 2302)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetupBack(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x731A4
|
||||
* D:\driver2\game\C\PEDEST.C (line 3411)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ SetupCivPedRouteData(struct VECTOR *pPos /*$s1*/)
|
||||
{ // line 1, address 0x731a4
|
||||
struct VECTOR baseLoc; // stack address -32
|
||||
} // line 24, address 0x73260
|
||||
/*
|
||||
* Offset 0x73260
|
||||
* D:\driver2\game\C\PEDEST.C (line 3915)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ PingOutPed(struct PEDESTRIAN *pPed /*$a2*/)
|
||||
{ // line 1, address 0x73260
|
||||
int px; // $a0
|
||||
int pz; // $v1
|
||||
int ps; // $a0
|
||||
} // line 23, address 0x732d8
|
||||
/*
|
||||
* Offset 0x732D8
|
||||
* D:\driver2\game\C\PEDEST.C (line 4080)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetupCivPedWalk(struct PEDESTRIAN *pPed /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x73328
|
||||
* D:\driver2\game\C\PEDEST.C (line 5231)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CheckForPlayerCar(struct PEDESTRIAN *pedestrian /*$a0*/, struct CAR_COLLISION_BOX *collision_box /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x73390
|
||||
* D:\driver2\game\C\PEDEST.C (line 5344)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ProcessChairLump(char *lump_file /*$a0*/, int lump_size /*$a1*/)
|
||||
{
|
||||
}
|
67
src/C/players.c
Normal file
67
src/C/players.c
Normal file
@ -0,0 +1,67 @@
|
||||
|
||||
/*
|
||||
* Offset 0x7339C
|
||||
* D:\driver2\game\C\PLAYERS.C (line 130)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ ChangeCarPlayerToPed(int playerID /*$s0*/)
|
||||
{ // line 1, address 0x7339c
|
||||
struct _CAR_DATA *lcp; // $s2
|
||||
} // line 51, address 0x73574
|
||||
/*
|
||||
* Offset 0x73574
|
||||
* D:\driver2\game\C\PLAYERS.C (line 184)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ ChangePedPlayerToCar(int playerID /*$s4*/, struct _CAR_DATA *newCar /*$s2*/)
|
||||
{ // line 1, address 0x73574
|
||||
struct _PLAYER *lPlayer; // $s1
|
||||
int siren; // $s5
|
||||
long *pos; // $s3
|
||||
int carParked; // $s6
|
||||
} // line 60, address 0x73900
|
||||
/*
|
||||
* Offset 0x73900
|
||||
* D:\driver2\game\C\PLAYERS.C (line 247)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ UpdatePlayers()
|
||||
{ // line 2, address 0x73900
|
||||
struct _PLAYER *locPlayer; // $t0
|
||||
struct _CAR_DATA *cp; // $v1
|
||||
} // line 39, address 0x73a40
|
||||
/*
|
||||
* Offset 0x73A40
|
||||
* D:\driver2\game\C\PLAYERS.C (line 75)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ InitPlayer(struct _PLAYER *locPlayer /*$s1*/, struct _CAR_DATA *cp /*$s2*/, char carCtrlType /*$s3*/, int direction /*$s6*/, long *startPos[4] /*stack 16*/, int externModel /*stack 20*/, int palette /*stack 24*/, char *padid /*stack 28*/)
|
||||
{ // line 1, address 0x73a40
|
||||
} // line 52, address 0x73c74
|
||||
/*
|
||||
* Offset 0x73C74
|
||||
* D:\driver2\game\C\PLAYERS.C (line 298)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ RequestSlightPauseBeforeCarSoundStarts(char player_id /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x73CBC
|
||||
* D:\driver2\game\C\PLAYERS.C (line 305)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ HaveCarSoundStraightAway(char player_id /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x73CF4
|
||||
* D:\driver2\game\C\PLAYERS.C (line 310)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ MakeTheCarShutUp(char player_id /*$a0*/)
|
||||
{
|
||||
}
|
244
src/C/pres.c
Normal file
244
src/C/pres.c
Normal file
@ -0,0 +1,244 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
FONT_DIGIT fontDigit[] = {
|
||||
{ 2, 0xE },
|
||||
{ 0x11, 0xE},
|
||||
{ 0x20, 0x10},
|
||||
{ 0x31, 0xF},
|
||||
{ 0x41, 0xE },
|
||||
{ 0x50, 0xE },
|
||||
{ 4, 0x10 },
|
||||
{ 0x15, 0xE },
|
||||
{ 0x24, 0xF },
|
||||
{ 0x34, 0x11 },
|
||||
{ 0x46, 0xB },
|
||||
{ 0x52, 7 },
|
||||
};
|
||||
|
||||
TEXTURE_DETAILS button_textures[11];
|
||||
|
||||
char* button_names[11] = {
|
||||
"BTNTRIAN",
|
||||
"BTNCIRCL",
|
||||
"BTNCROSS",
|
||||
"BTNSQUAR",
|
||||
"BTNUP",
|
||||
"BTNDOWN",
|
||||
"BTNLEFT",
|
||||
"BTNRIGHT",
|
||||
"BTNSTART",
|
||||
"BTNSELEC",
|
||||
"BTNDPAD",
|
||||
};
|
||||
|
||||
/*
|
||||
* Offset 0x73D30
|
||||
* D:\driver2\game\C\PRES.C (line 360)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ LoadFont(char *buffer /*$a0*/)
|
||||
{ // line 1, address 0x73d30
|
||||
struct RECT dest; // stack address -24
|
||||
char *file; // $s1
|
||||
int i; // $v1
|
||||
int nchars; // $s0
|
||||
} // line 48, address 0x73f08
|
||||
/*
|
||||
* Offset 0x73F08
|
||||
* D:\driver2\game\C\PRES.C (line 457)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
int /*$ra*/ PrintString(char *string /*$s3*/, int x /*$s2*/, int y /*$s6*/)
|
||||
{ // line 1, address 0x73f08
|
||||
struct OUT_FONTINFO *pFontInfo; // $a1
|
||||
struct SPRT *font; // $s0
|
||||
unsigned char width; // $s1
|
||||
unsigned char c; // $s1
|
||||
int index; // $v1
|
||||
} // line 79, address 0x741a8
|
||||
/*
|
||||
* Offset 0x741A8
|
||||
* D:\driver2\game\C\PRES.C (line 539)
|
||||
* Stack frame base $sp, length 8
|
||||
* Saved registers at address -4: s0 s1
|
||||
*/
|
||||
short /*$ra*/ PrintDigit(int x /*$t3*/, int y /*$s1*/, char *string /*$a2*/)
|
||||
{ // line 1, address 0x741a8
|
||||
struct FONT_DIGIT *pDigit; // $a1
|
||||
struct SPRT *font; // $t0
|
||||
char width; // $a3
|
||||
char fixedWidth; // $t1
|
||||
char vOff; // $t2
|
||||
char h; // $a0
|
||||
{ // line 13, address 0x741f8
|
||||
char let; // $v1
|
||||
char convLet; // $a0
|
||||
} // line 44, address 0x7425c
|
||||
} // line 67, address 0x743cc
|
||||
/*
|
||||
* Offset 0x743CC
|
||||
* D:\driver2\game\C\PRES.C (line 643)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ PrintStringBoxed(char *string /*$s2*/, int ix /*$s5*/, int iy /*$a2*/)
|
||||
{ // line 1, address 0x743cc
|
||||
struct OUT_FONTINFO *pFontInfo; // $a1
|
||||
struct SPRT *font; // $s0
|
||||
char word[32]; // stack address -64
|
||||
char *wpt; // $t0
|
||||
char c; // $a0
|
||||
int x; // $s1
|
||||
int y; // $s3
|
||||
int index; // $a1
|
||||
int wordcount; // $s4
|
||||
} // line 68, address 0x74644
|
||||
/*
|
||||
* Offset 0x74644
|
||||
* D:\driver2\game\C\PRES.C (line 726)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
int /*$ra*/ PrintScaledString(int y /*$s4*/, char *string /*$s1*/, int scale /*$s2*/)
|
||||
{ // line 1, address 0x74644
|
||||
struct FONT_DIGIT *pDigit; // $a2
|
||||
struct POLY_FT4 *font; // $t0
|
||||
int x; // $s0
|
||||
int width; // $t3
|
||||
int height; // $t6
|
||||
int y0; // $t1
|
||||
int x1; // $t5
|
||||
int y1; // $v0
|
||||
unsigned char vOff; // $t8
|
||||
char c; // $a0
|
||||
} // line 68, address 0x748c0
|
||||
/*
|
||||
* Offset 0x748C0
|
||||
* D:\driver2\game\C\PRES.C (line 819)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void * /*$ra*/ DrawButton(unsigned char button /*$a0*/, void *prim /*$s1*/, int x /*$a2*/, int y /*$a3*/)
|
||||
{ // line 1, address 0x748c0
|
||||
struct TEXTURE_DETAILS *btn; // $a1
|
||||
struct POLY_FT3 *null; // $s0
|
||||
} // line 34, address 0x74a78
|
||||
/*
|
||||
* Offset 0x74A78
|
||||
* D:\driver2\game\C\PRES.C (line 228)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetTextColour(unsigned char Red /*$a0*/, unsigned char Green /*$a1*/, unsigned char Blue /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x74A8C
|
||||
* D:\driver2\game\C\PRES.C (line 245)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ StringWidth(char *pString /*$a0*/)
|
||||
{ // line 1, address 0x74a8c
|
||||
int w; // $a2
|
||||
char let; // $a1
|
||||
{ // line 11, address 0x74ac8
|
||||
char convLet; // $v1
|
||||
} // line 21, address 0x74b00
|
||||
} // line 24, address 0x74b18
|
||||
/*
|
||||
* Offset 0x74B18
|
||||
* D:\driver2\game\C\PRES.C (line 285)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
int /*$ra*/ OutputString(char *pString /*$s2*/, int formatting /*$s0*/, int x /*$a2*/, int y /*$s3*/, int xw /*stack 16*/, int r /*stack 20*/, int g /*stack 24*/, int b /*stack 28*/)
|
||||
{ // line 1, address 0x74b18
|
||||
int xpos; // $s1
|
||||
{ // line 17, address 0x74b7c
|
||||
} // line 17, address 0x74b7c
|
||||
} // line 38, address 0x74bf4
|
||||
/*
|
||||
* Offset 0x74BF4
|
||||
* D:\driver2\game\C\PRES.C (line 333)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ PrintStringRightAligned(char *pString /*$s1*/, int x /*$s0*/, int y /*$s2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x74C40
|
||||
* D:\driver2\game\C\PRES.C (line 347)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ PrintStringCentred(char *pString /*$s1*/, short y /*$a1*/)
|
||||
{ // line 1, address 0x74c40
|
||||
} // line 5, address 0x74c90
|
||||
/*
|
||||
* Offset 0x74C90
|
||||
* D:\driver2\game\C\PRES.C (line 416)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ StoreClut2(unsigned long *pDest /*$a1*/, int x /*$a1*/, int y /*$a2*/)
|
||||
{ // line 1, address 0x74c90
|
||||
struct RECT rect; // stack address -16
|
||||
} // line 10, address 0x74ccc
|
||||
/*
|
||||
* Offset 0x74CCC
|
||||
* D:\driver2\game\C\PRES.C (line 434)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ SetCLUT16Flags(unsigned short clutID /*$a0*/, unsigned short mask /*$s2*/, char transparent /*$s0*/)
|
||||
{ // line 1, address 0x74ccc
|
||||
unsigned short buffer[16]; // stack address -56
|
||||
unsigned short *pCurrent; // $a0
|
||||
char ctr; // $a1
|
||||
int x; // $s3
|
||||
int y; // $s1
|
||||
} // line 21, address 0x74d9c
|
||||
/*
|
||||
* Offset 0x74D9C
|
||||
* D:\driver2\game\C\PRES.C (line 612)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ PrintStringFeature(char *string /*$a0*/, int x /*$a1*/, int y /*$a2*/, int w /*$a3*/, int h /*stack 16*/, int transparent /*stack 20*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x74DBC
|
||||
* D:\driver2\game\C\PRES.C (line 800)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
char * /*$ra*/ GetNextWord(char *string /*$a0*/, char *word /*$a1*/)
|
||||
{ // line 1, address 0x74dbc
|
||||
char c; // $v1
|
||||
} // line 17, address 0x74dfc
|
||||
/*
|
||||
* Offset 0x74DFC
|
||||
* D:\driver2\game\C\PRES.C (line 855)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void * /*$ra*/ SetFontTPage(void *prim /*$a0*/)
|
||||
{ // line 1, address 0x74dfc
|
||||
struct POLY_FT3 *null; // $s0
|
||||
} // line 16, address 0x74ebc
|
||||
/*
|
||||
* Offset 0x74EBC
|
||||
* D:\driver2\game\C\PRES.C (line 713)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ InitButtonTextures()// (F)
|
||||
{ // line 2, address 0x74ebc
|
||||
int i; // $s0
|
||||
for (i = 0; i < 11; i++)
|
||||
{
|
||||
GetTextureDetails(button_names[i], &button_textures[i]);
|
||||
}
|
||||
} // line 6, address 0x74f1c
|
132
src/C/replays.c
Normal file
132
src/C/replays.c
Normal file
@ -0,0 +1,132 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
char AnalogueUnpack[] = { 0, 0xCD, 0xC1, 0xB5, 0xA9, 0x9D, 0x91, 0x85, 0, 0x33, 0x3F, 0x4B, 0x57, 0x63, 0x6F, 0x7B };
|
||||
|
||||
/*
|
||||
* Offset 0x1A104
|
||||
* D:\driver2\game\C\REPLAYS.C (line 498)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ InitPadRecording()
|
||||
{ // line 2, address 0x1a104
|
||||
int i; // $s0
|
||||
int remain; // $s0
|
||||
} // line 152, address 0x1a29c
|
||||
/*
|
||||
* Offset 0x1A29C
|
||||
* D:\driver2\game\C\REPLAYS.C (line 657)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
int /*$ra*/ SaveReplayToBuffer(char *buffer /*$s0*/)
|
||||
{ // line 1, address 0x1a29c
|
||||
struct REPLAY_SAVE_HEADER *header; // $s2
|
||||
int i; // $a2
|
||||
int length; // $s1
|
||||
int numstreams; // $s6
|
||||
} // line 76, address 0x1a800
|
||||
/*
|
||||
* Offset 0x1A800
|
||||
* D:\driver2\game\C\REPLAYS.C (line 740)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
int /*$ra*/ LoadReplayFromBuffer(char *buffer /*$s1*/)
|
||||
{ // line 2, address 0x1a800
|
||||
struct REPLAY_SAVE_HEADER *header; // $s3
|
||||
struct REPLAY_STREAM_HEADER *sheader; // $t0
|
||||
int i; // $a1
|
||||
int length; // $s0
|
||||
} // line 73, address 0x1adb8
|
||||
/*
|
||||
* Offset 0x1ADB8
|
||||
* D:\driver2\game\C\REPLAYS.C (line 1310)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ cjpRecord(int stream /*$s1*/, unsigned long *ppad /*$s4*/, char *psteer /*$s2*/, char *ptype /*$s3*/)
|
||||
{ // line 1, address 0x1adb8
|
||||
unsigned long t0; // stack address -32
|
||||
int t1; // $s0
|
||||
} // line 60, address 0x1af7c
|
||||
/*
|
||||
* Offset 0x1AF9C
|
||||
* D:\driver2\game\C\REPLAYS.C (line 1222)
|
||||
* Stack frame base $sp, length 8
|
||||
*/
|
||||
int /*$ra*/ valid_region(int x /*$a0*/, int z /*$a1*/)
|
||||
{ // line 2, address 0x1af9c
|
||||
struct XYPAIR region_coords; // stack address -8
|
||||
int region; // $a0
|
||||
} // line 47, address 0x1b064
|
||||
/*
|
||||
* Offset 0x1B064
|
||||
* D:\driver2\game\C\REPLAYS.C (line 1271)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ cjpPlay(int stream /*$a0*/, unsigned long *ppad /*$s2*/, char *psteer /*$s0*/, char *ptype /*$s1*/)
|
||||
{ // line 1, address 0x1b064
|
||||
int ret; // $a0
|
||||
unsigned long t0; // stack address -24
|
||||
int t1; // $v1
|
||||
} // line 20, address 0x1b0f8
|
||||
/*
|
||||
* Offset 0x1B0F8
|
||||
* D:\driver2\game\C\REPLAYS.C (line 1182)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
char /*$ra*/ GetPingInfo(char *cookieCount /*$a2*/)
|
||||
{ // line 1, address 0x1b0f8
|
||||
struct _PING_PACKET *pp; // $a1
|
||||
char retCarId; // $v0
|
||||
} // line 24, address 0x1b180
|
||||
/*
|
||||
* Offset 0x1B180
|
||||
* D:\driver2\game\C\REPLAYS.C (line 1059)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ LoadAttractReplay(int mission /*$a2*/)
|
||||
{ // line 1, address 0x1b180
|
||||
char filename[32]; // stack address -40
|
||||
} // line 12, address 0x1b1e4
|
||||
/*
|
||||
* Offset 0x1B1E4
|
||||
* D:\driver2\game\C\REPLAYS.C (line 1383)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ AllocateReplayStream(struct REPLAY_STREAM *stream /*$a0*/, int maxpad /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1B258
|
||||
* D:\driver2\game\C\REPLAYS.C (line 1402)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ Get(int stream /*$a0*/, unsigned long *pt0 /*$a1*/)
|
||||
{ // line 1, address 0x1b258
|
||||
struct REPLAY_STREAM *rstream; // $a2
|
||||
unsigned long t0; // $a0
|
||||
} // line 36, address 0x1b2e8
|
||||
/*
|
||||
* Offset 0x1B2E8
|
||||
* D:\driver2\game\C\REPLAYS.C (line 1440)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ Put(int stream /*$a0*/, unsigned long *pt0 /*$a1*/)
|
||||
{ // line 2, address 0x1b2e8
|
||||
struct REPLAY_STREAM *rstream; // $a0
|
||||
unsigned char **pstream; // $a3
|
||||
unsigned long t0; // $a1
|
||||
} // line 37, address 0x1b3cc
|
||||
/*
|
||||
* Offset 0x1B3CC
|
||||
* D:\driver2\game\C\REPLAYS.C (line 1479)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ RecordWaypoint()
|
||||
{
|
||||
}
|
9
src/C/roadbits.c
Normal file
9
src/C/roadbits.c
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
/*
|
||||
* Offset 0x74F1C
|
||||
* D:\driver2\game\C\ROADBITS.C (line 147)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
char /*$ra*/ ROADS_GetRouteData(int x /*$a0*/, int z /*$a1*/, struct ROUTE_DATA *pRouteData /*$a2*/)
|
||||
{
|
||||
}
|
78
src/C/scores.c
Normal file
78
src/C/scores.c
Normal file
@ -0,0 +1,78 @@
|
||||
|
||||
/*
|
||||
* Offset 0x74F28
|
||||
* D:\driver2\game\C\SCORES.C (line 58)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ InitialiseScoreTables()
|
||||
{ // line 2, address 0x74f28
|
||||
int i; // $s3
|
||||
int j; // $s1
|
||||
} // line 26, address 0x750a4
|
||||
/*
|
||||
* Offset 0x750A4
|
||||
* D:\driver2\game\C\SCORES.C (line 86)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ OnScoreTable(struct SCORE_ENTRY **tablept /*$s1*/)
|
||||
{ // line 1, address 0x750a4
|
||||
struct SCORE_ENTRY *table; // $s0
|
||||
int position; // $v0
|
||||
} // line 40, address 0x75260
|
||||
/*
|
||||
* Offset 0x75260
|
||||
* D:\driver2\game\C\SCORES.C (line 133)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ AddScoreToTable(struct SCORE_ENTRY *table /*$a2*/, int entry /*$a1*/)
|
||||
{ // line 1, address 0x75260
|
||||
int i; // $a3
|
||||
} // line 16, address 0x752d4
|
||||
/*
|
||||
* Offset 0x752D4
|
||||
* D:\driver2\game\C\SCORES.C (line 162)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CheckGetawayPlacing(struct SCORE_ENTRY *table /*$a0*/)
|
||||
{ // line 1, address 0x752d4
|
||||
int i; // $v1
|
||||
} // line 16, address 0x75324
|
||||
/*
|
||||
* Offset 0x75324
|
||||
* D:\driver2\game\C\SCORES.C (line 188)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CheckTrailblazerPlacing(struct SCORE_ENTRY *table /*$a0*/)
|
||||
{ // line 1, address 0x75324
|
||||
int i; // $a2
|
||||
} // line 21, address 0x753a0
|
||||
/*
|
||||
* Offset 0x753A0
|
||||
* D:\driver2\game\C\SCORES.C (line 218)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CheckCheckpointPlacing(struct SCORE_ENTRY *table /*$a0*/)
|
||||
{ // line 1, address 0x753a0
|
||||
int i; // $v1
|
||||
} // line 16, address 0x753f0
|
||||
/*
|
||||
* Offset 0x753F0
|
||||
* D:\driver2\game\C\SCORES.C (line 243)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CheckSurvivalPlacing(struct SCORE_ENTRY *table /*$a0*/)
|
||||
{ // line 1, address 0x753f0
|
||||
int i; // $v1
|
||||
} // line 16, address 0x75440
|
||||
/*
|
||||
* Offset 0x75440
|
||||
* D:\driver2\game\C\SCORES.C (line 261)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ResetTable(struct SCORE_ENTRY *table /*$a0*/)
|
||||
{ // line 1, address 0x75440
|
||||
int i; // $v1
|
||||
} // line 11, address 0x75470
|
67
src/C/search.c
Normal file
67
src/C/search.c
Normal file
@ -0,0 +1,67 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
TEXTURE_DETAILS addcam; // address 0xC0A50
|
||||
TEXTURE_DETAILS arm1_texture; // address 0xC1BF8
|
||||
TEXTURE_DETAILS autocam; // address 0xC1CA0
|
||||
TEXTURE_DETAILS bird_texture1; // address 0xC1D90
|
||||
TEXTURE_DETAILS bird_texture2; // address 0xC1DA0
|
||||
TEXTURE_DETAILS chasecar; // address 0xC1D60
|
||||
TEXTURE_DETAILS chest1_texture; // address 0xC2A18
|
||||
TEXTURE_DETAILS choosecar; // address 0xC2A08
|
||||
TEXTURE_DETAILS clock; // address 0xBF940
|
||||
TEXTURE_DETAILS collon_texture; // address 0xBF8C8
|
||||
TEXTURE_DETAILS cop_texture; // address 0xC1B80
|
||||
TEXTURE_DETAILS cross_texture; // address 0xC2878
|
||||
TEXTURE_DETAILS cycle_tex[12]; // address 0xAB778
|
||||
TEXTURE_DETAILS debris_texture; // address 0xC39B0
|
||||
TEXTURE_DETAILS delcam; // address 0xC0EE0
|
||||
TEXTURE_DETAILS digit_texture; // address 0xC1F60
|
||||
TEXTURE_DETAILS drop_texture; // address 0xC1CF0
|
||||
TEXTURE_DETAILS editcam; // address 0xC1BE8
|
||||
TEXTURE_DETAILS fixedcam; // address 0xC1D70
|
||||
TEXTURE_DETAILS flare_texture; // address 0xC1F50
|
||||
TEXTURE_DETAILS forearm1_texture; // address 0xC1AF8
|
||||
TEXTURE_DETAILS frameadv; // address 0xC1D80
|
||||
TEXTURE_DETAILS gTyreTexture; // address 0xC1CC0
|
||||
TEXTURE_DETAILS head1_texture; // address 0xC1D30
|
||||
TEXTURE_DETAILS incar; // address 0xBF950
|
||||
TEXTURE_DETAILS jeans_texture; // address 0xC1F70
|
||||
TEXTURE_DETAILS joypad_texture; // address 0xBF8B8
|
||||
TEXTURE_DETAILS lenschan; // address 0xC1DB0
|
||||
TEXTURE_DETAILS lensflare_texture; // address 0xC1D20
|
||||
TEXTURE_DETAILS light_pool_texture; // address 0xC29F8
|
||||
TEXTURE_DETAILS light_texture; // address 0xC1F90
|
||||
TEXTURE_DETAILS lightref_texture; // address 0xC1BA0
|
||||
TEXTURE_DETAILS line_texture; // address 0xC1CE0
|
||||
TEXTURE_DETAILS litter_texture; // address 0xBF960
|
||||
TEXTURE_DETAILS lookcar; // address 0xC1CB0
|
||||
TEXTURE_DETAILS moon_texture; // address 0xC1D00
|
||||
TEXTURE_DETAILS movecam; // address 0xC1C18
|
||||
TEXTURE_DETAILS movecampos; // address 0xC08C0
|
||||
TEXTURE_DETAILS ok; // address 0xC1BD8
|
||||
TEXTURE_DETAILS pad_texture; // address 0xC1B08
|
||||
TEXTURE_DETAILS paper_texture; // address 0xC1FA0
|
||||
TEXTURE_DETAILS dir_pause; // address 0xBF970
|
||||
TEXTURE_DETAILS playcam; // address 0xC1C08
|
||||
TEXTURE_DETAILS playpause; // address 0xC2A28
|
||||
TEXTURE_DETAILS pool_texture; // address 0xC1D10
|
||||
TEXTURE_DETAILS restart; // address 0xC1CD0
|
||||
TEXTURE_DETAILS save2card; // address 0xC1F40
|
||||
TEXTURE_DETAILS sea_texture; // address 0xC1B18
|
||||
TEXTURE_DETAILS smoke_texture; // address 0xC2858
|
||||
TEXTURE_DETAILS spark_texture; // address 0xC2868
|
||||
TEXTURE_DETAILS sun_texture; // address 0xC1B90
|
||||
TEXTURE_DETAILS tannerShadow_texture; // address 0xC0EF0
|
||||
TEXTURE_DETAILS texturePedHead; // address 0xC29D0
|
||||
TEXTURE_DETAILS trail_texture; // address 0xC1FB0
|
||||
TEXTURE_DETAILS watch_texture; // address 0xC1F80
|
||||
|
||||
/*
|
||||
* Offset 0x1BAF0
|
||||
* D:\driver2\game\C\SEARCH.C (line 12)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitTextureNames()
|
||||
{
|
||||
}
|
203
src/C/shadow.c
Normal file
203
src/C/shadow.c
Normal file
@ -0,0 +1,203 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x75470
|
||||
* D:\driver2\game\C\SHADOW.C (line 272)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ GetTyreTrackPositions(struct _CAR_DATA *cp /*$s3*/, int player_id /*$s7*/)
|
||||
{ // line 1, address 0x75470
|
||||
struct CAR_COSMETICS *car_cos; // $s4
|
||||
struct VECTOR WheelPos; // stack address -88
|
||||
struct VECTOR target_pos; // stack address -72
|
||||
struct VECTOR normal; // stack address -56
|
||||
int loop; // $s2
|
||||
{ // line 11, address 0x754c0
|
||||
} // line 16, address 0x754e8
|
||||
} // line 26, address 0x755a8
|
||||
/*
|
||||
* Offset 0x755A8
|
||||
* D:\driver2\game\C\SHADOW.C (line 330)
|
||||
* Stack frame base $sp, length 200
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ AddTyreTrack(int wheel /*$s2*/, int tracksAndSmoke /*$s6*/, int padid /*$s0*/)
|
||||
{ // line 1, address 0x755a8
|
||||
struct VECTOR New1; // stack address -168
|
||||
struct VECTOR New2; // stack address -152
|
||||
struct VECTOR New3; // stack address -136
|
||||
struct VECTOR New4; // stack address -120
|
||||
struct VECTOR *old; // $s5
|
||||
struct VECTOR *newt; // $s3
|
||||
struct TYRE_TRACK *tt_p; // $s1
|
||||
int x; // $v1
|
||||
int z; // $a1
|
||||
int c; // $t1
|
||||
int s; // $t0
|
||||
unsigned int index; // $a2
|
||||
static int Cont[4]; // address 0x0
|
||||
struct VECTOR psxoffset; // stack address -104
|
||||
struct VECTOR SmokeDrift; // stack address -88
|
||||
struct VECTOR SmokePosition; // stack address -72
|
||||
char trackSurface; // $s0
|
||||
{ // line 34, address 0x75678
|
||||
struct ROUTE_DATA routeData; // stack address -56
|
||||
struct _sdPlane *SurfaceDataPtr; // $v0
|
||||
} // line 69, address 0x75704
|
||||
{ // line 74, address 0x75710
|
||||
} // line 81, address 0x75738
|
||||
{ // line 91, address 0x75794
|
||||
struct VECTOR grass_vector; // stack address -48
|
||||
} // line 91, address 0x75794
|
||||
} // line 176, address 0x75a20
|
||||
/*
|
||||
* Offset 0x75A48
|
||||
* D:\driver2\game\C\SHADOW.C (line 517)
|
||||
* Stack frame base $sp, length 136
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6
|
||||
*/
|
||||
void /*$ra*/ DrawTyreTracks()
|
||||
{ // line 2, address 0x75a48
|
||||
struct VECTOR p[4]; // stack address -136
|
||||
struct SVECTOR ps[4]; // stack address -72
|
||||
struct TYRE_TRACK *tt_p; // $t0
|
||||
int z; // stack address -40
|
||||
int temp; // $a2
|
||||
int loop; // $t7
|
||||
int wheel_loop; // $s0
|
||||
int index; // $t2
|
||||
char last_duff; // $s1
|
||||
struct POLY_FT4 *poly; // $a3
|
||||
struct POLY_FT4 *lasttyre; // $t8
|
||||
} // line 128, address 0x75f9c
|
||||
/*
|
||||
* Offset 0x75F9C
|
||||
* D:\driver2\game\C\SHADOW.C (line 659)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ InitShadow()
|
||||
{ // line 2, address 0x75f9c
|
||||
struct TPAN pos; // stack address -16
|
||||
struct TEXINF *texinf; // $v0
|
||||
int i; // $a2
|
||||
int j; // $a3
|
||||
{ // line 23, address 0x760f8
|
||||
} // line 25, address 0x760f8
|
||||
} // line 38, address 0x76170
|
||||
/*
|
||||
* Offset 0x76170
|
||||
* D:\driver2\game\C\SHADOW.C (line 717)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SubdivShadow(long z0 /*$t7*/, long z1 /*$t9*/, long z2 /*$t8*/, long z3 /*$t6*/, struct POLY_FT4 *sps /*stack 16*/)
|
||||
{ // line 1, address 0x76170
|
||||
struct POLY_FT4 *spd; // $t3
|
||||
int i; // $t4
|
||||
{ // line 18, address 0x76220
|
||||
unsigned long A0; // $v1
|
||||
unsigned long A1; // $a1
|
||||
unsigned long E0; // $a3
|
||||
unsigned long E1; // $t0
|
||||
unsigned long C0; // $a0
|
||||
unsigned long C1; // $a2
|
||||
unsigned long B0; // $v1
|
||||
unsigned long B1; // $a1
|
||||
unsigned long D0; // $a0
|
||||
unsigned long D1; // $a2
|
||||
} // line 18, address 0x76220
|
||||
{ // line 18, address 0x76220
|
||||
unsigned long A0; // $a1
|
||||
unsigned long A1; // $a2
|
||||
unsigned long E0; // $a3
|
||||
unsigned long E1; // $t0
|
||||
unsigned long C0; // $a0
|
||||
unsigned long C1; // $v1
|
||||
unsigned long B0; // $a1
|
||||
unsigned long B1; // $a2
|
||||
unsigned long D0; // $a0
|
||||
unsigned long D1; // $v1
|
||||
} // line 18, address 0x76220
|
||||
} // line 144, address 0x76734
|
||||
/*
|
||||
* Offset 0x76734
|
||||
* D:\driver2\game\C\SHADOW.C (line 864)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ PlaceShadowForCar(struct VECTOR *shadowPoints /*$t0*/, int slot /*$s0*/, struct VECTOR *CarPos /*$a2*/, int zclip /*$a3*/)
|
||||
{ // line 1, address 0x76734
|
||||
struct SVECTOR points[4]; // stack address -64
|
||||
long z; // $a0
|
||||
long z0; // stack address -32
|
||||
long z1; // stack address -28
|
||||
long z2; // stack address -24
|
||||
long z3; // stack address -20
|
||||
struct POLY_FT4 *spt; // $a3
|
||||
} // line 69, address 0x76aa8
|
||||
/*
|
||||
* Offset 0x76AA8
|
||||
* D:\driver2\game\C\SHADOW.C (line 1038)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ clipAgainstZ()
|
||||
{ // line 2, address 0x76aa8
|
||||
int srccount; // $t4
|
||||
int dstcount; // $t5
|
||||
struct SVECTOR *current; // $t2
|
||||
struct SVECTOR *previous; // $t1
|
||||
struct SVECTOR *dst; // $a3
|
||||
int flags; // $t3
|
||||
{ // line 19, address 0x76b28
|
||||
int q; // $a2
|
||||
} // line 19, address 0x76b28
|
||||
{ // line 25, address 0x76c20
|
||||
int q; // $a2
|
||||
} // line 25, address 0x76c20
|
||||
} // line 41, address 0x76d3c
|
||||
/*
|
||||
* Offset 0x76D3C
|
||||
* D:\driver2\game\C\SHADOW.C (line 1081)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ clippedPoly()
|
||||
{ // line 2, address 0x76d3c
|
||||
int i; // $a3
|
||||
int j; // $t0
|
||||
int z1; // $v1
|
||||
struct POLY_G3 *pg3; // $s0
|
||||
int z[3]; // stack address -24
|
||||
} // line 75, address 0x77190
|
||||
/*
|
||||
* Offset 0x771A0
|
||||
* D:\driver2\game\C\SHADOW.C (line 1160)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ sQuad(struct SVECTOR *v0 /*$a0*/, struct SVECTOR *v1 /*$s5*/, struct SVECTOR *v2 /*$s6*/, struct SVECTOR *v3 /*$s4*/)
|
||||
{ // line 1, address 0x771a0
|
||||
int z1; // $v0
|
||||
int z[4]; // stack address -48
|
||||
{ // line 8, address 0x7721c
|
||||
struct POLY_G4 *pf4; // $t2
|
||||
} // line 30, address 0x7731c
|
||||
} // line 62, address 0x7758c
|
||||
/*
|
||||
* Offset 0x7758C
|
||||
* D:\driver2\game\C\SHADOW.C (line 253)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitTyreTracks()
|
||||
{ // line 2, address 0x7758c
|
||||
int loop; // $a0
|
||||
} // line 9, address 0x775c0
|
||||
/*
|
||||
* Offset 0x775C0
|
||||
* D:\driver2\game\C\SHADOW.C (line 306)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetTyreTrackOldPositions(int player_id /*$a0*/)
|
||||
{
|
||||
}
|
230
src/C/sky.c
Normal file
230
src/C/sky.c
Normal file
@ -0,0 +1,230 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
int sky_y_offset[4] = { 14, 14, 14, 14 };
|
||||
|
||||
unsigned char HorizonLookup[4][4] = {
|
||||
{0, 0, 0x14, 0x14},
|
||||
{0x14, 0x14, 0, 0},
|
||||
{0, 0, 0x14, 0x14},
|
||||
{0, 0, 0x14, 0x14},
|
||||
};
|
||||
|
||||
unsigned char HorizonTextures[40] = {
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB,
|
||||
0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13,
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 0x14, 0x15, 0x16, 0x17,
|
||||
0x18, 0x19, 0x1A, 0x1B, 0x10, 0x11, 0x12, 0x13
|
||||
};
|
||||
|
||||
SVECTOR sun_position[4] =
|
||||
{
|
||||
{ 33536, 54536, 60536, 0 },
|
||||
{ 33536, 54536, 60536, 0 },
|
||||
{ 33536, 54536, 60536, 0 },
|
||||
{ 33536, 54536, 60536, 0 }
|
||||
};
|
||||
|
||||
SVECTOR moon_position[4] =
|
||||
{
|
||||
{ 33536, 54036, 47536, 0 },
|
||||
{ 33536, 54036, 47536, 0 },
|
||||
{ 33536, 54036, 47536, 0 },
|
||||
{ 33536, 54036, 47536, 0 }
|
||||
};
|
||||
|
||||
SVECTOR moon_shadow_position[4] =
|
||||
{
|
||||
{ 33536, 54036, 47536, 0 },
|
||||
{ 33536, 54036, 47536, 0 },
|
||||
{ 33536, 54036, 47536, 0 },
|
||||
{ 33536, 10500, 47536, 0 }
|
||||
};
|
||||
|
||||
FLAREREC flare_info[8] =
|
||||
{
|
||||
{ { 0, 0, 90, 0 }, '\x10', 12288 },
|
||||
{ { 20480, 10240, 1024, 0 }, '\0', 48 },
|
||||
{ { 72, 90, 0, 0 }, '\0', 12288 },
|
||||
{ { 24576, 0, 23040, 0 }, '\0', 0 },
|
||||
{ { 16, 144, 0, 0 }, 'Z', 0 },
|
||||
{ { 16384, 40960, 23040, 23040 }, '\0', 0 },
|
||||
{ { 0, 32, 184, 90 }, '\0', 0 },
|
||||
{ { 0, 8192, 53248, 0 }, '\0', 0 }
|
||||
};
|
||||
|
||||
VECTOR tunnelPos[3][2] =
|
||||
{
|
||||
{
|
||||
{ 4294568646, 0, 4294806296, 0 },
|
||||
{ 4294626996, 2000, 4294864296, 0 }
|
||||
},
|
||||
{
|
||||
{ 272800, 0, 41200, 0 },
|
||||
{ 271963, 2000, 168187, 0 }
|
||||
},
|
||||
|
||||
{
|
||||
{ 4294852196, 0, 4294774096, 0 },
|
||||
{ 4294853996, 4294966896, 4294834796, 0 }
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x77630
|
||||
* D:\driver2\game\C\SKY.C (line 145)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ LoadSky()
|
||||
{ // line 2, address 0x77630
|
||||
struct RECT rect; // stack address -96
|
||||
char name[16]; // stack address -88
|
||||
int x; // $s6
|
||||
int y; // $a1
|
||||
int i; // $t1
|
||||
int u; // $v1
|
||||
int v; // $s2
|
||||
int skynum; // $a2
|
||||
int address; // stack address -72
|
||||
{ // line 11, address 0x77670
|
||||
int flipped; // $t0
|
||||
int single; // $s5
|
||||
int ry; // $a2
|
||||
} // line 113, address 0x77838
|
||||
} // line 174, address 0x779c4
|
||||
/*
|
||||
* Offset 0x779C4
|
||||
* D:\driver2\game\C\SKY.C (line 327)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DrawSkyDome()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x77AF4
|
||||
* D:\driver2\game\C\SKY.C (line 351)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ DrawLensFlare()
|
||||
{ // line 2, address 0x77af4
|
||||
static char last_attempt_failed; // address 0x0
|
||||
static short buffer[160]; // address 0x0
|
||||
struct DVECTOR sun_pers_conv_position; // stack address -64
|
||||
struct RECT source; // stack address -56
|
||||
struct DR_MOVE *sample_sun; // $s0
|
||||
int distance_to_sun; // $s0
|
||||
int xpos; // $t1
|
||||
int ypos; // $v0
|
||||
int xgap; // $s4
|
||||
int ygap; // $s2
|
||||
int flarez; // stack address -40
|
||||
int shade; // $t4
|
||||
int sun_intensity; // $s3
|
||||
struct POLY_FT4 *polys; // $a1
|
||||
struct CVECTOR col; // stack address -48
|
||||
int r; // $a2
|
||||
int g; // $a3
|
||||
int b; // $a0
|
||||
{ // line 36, address 0x77bc0
|
||||
int bufferX; // $a0
|
||||
int bufferY; // $v1
|
||||
unsigned short *pwBuffer; // $s0
|
||||
} // line 54, address 0x77c28
|
||||
{ // line 95, address 0x77d9c
|
||||
int temp; // $v0
|
||||
{ // line 107, address 0x77e38
|
||||
struct FLAREREC *pFlareInfo; // $t3
|
||||
int flaresize; // $t0
|
||||
} // line 144, address 0x78014
|
||||
} // line 145, address 0x78014
|
||||
} // line 167, address 0x78100
|
||||
/*
|
||||
* Offset 0x78124
|
||||
* D:\driver2\game\C\SKY.C (line 527)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 s3
|
||||
*/
|
||||
void /*$ra*/ DisplaySun(struct DVECTOR *pos /*$a0*/, struct CVECTOR *col /*$a1*/, int flare_col /*$a2*/)
|
||||
{ // line 1, address 0x78124
|
||||
struct POLY_FT4 *polys; // $a1
|
||||
struct POLY_FT3 *null; // $a3
|
||||
struct VECTOR output; // stack address -32
|
||||
int width; // $t5
|
||||
int height; // $t4
|
||||
} // line 73, address 0x785ac
|
||||
/*
|
||||
* Offset 0x785AC
|
||||
* D:\driver2\game\C\SKY.C (line 609)
|
||||
* Stack frame base $sp, length 16
|
||||
*/
|
||||
void /*$ra*/ DisplayMoon(struct DVECTOR *pos /*$t4*/, struct CVECTOR *col /*$t6*/, int flip /*$a2*/)
|
||||
{ // line 1, address 0x785ac
|
||||
struct POLY_FT3 *null; // $a0
|
||||
struct VECTOR output; // stack address -16
|
||||
int width; // $t5
|
||||
int height; // $t3
|
||||
} // line 40, address 0x78818
|
||||
/*
|
||||
* Offset 0x78818
|
||||
* D:\driver2\game\C\SKY.C (line 679)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ TunnelSkyFade()
|
||||
{ // line 2, address 0x78818
|
||||
int tun; // $a3
|
||||
{ // line 16, address 0x78840
|
||||
int diffX; // $v1
|
||||
int diffZ; // $v0
|
||||
int dX; // $v1
|
||||
int dZ; // $v0
|
||||
int len; // $a1
|
||||
struct VECTOR *v1; // $t1
|
||||
struct VECTOR *v2; // $t0
|
||||
{ // line 46, address 0x788dc
|
||||
int l2; // $v1
|
||||
} // line 66, address 0x78950
|
||||
} // line 97, address 0x789c4
|
||||
} // line 98, address 0x789c4
|
||||
/*
|
||||
* Offset 0x789CC
|
||||
* D:\driver2\game\C\SKY.C (line 785)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ calc_sky_brightness()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x78B80
|
||||
* D:\driver2\game\C\SKY.C (line 855)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ PlotSkyPoly(int skytexnum /*$t5*/, unsigned char r /*$a1*/, unsigned char g /*$a2*/, unsigned char b /*$a3*/, int address /*stack 16*/)
|
||||
{ // line 1, address 0x78b80
|
||||
struct POLYFT4 *src; // $t1
|
||||
struct DVECTOR *outpoints; // $t0
|
||||
struct POLY_FT4 *prims; // $t2
|
||||
} // line 39, address 0x78f24
|
||||
/*
|
||||
* Offset 0x78F2C
|
||||
* D:\driver2\game\C\SKY.C (line 896)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ PlotHorizonMDL(struct MODEL *model /*$s6*/, int horizontaboffset /*$a1*/)
|
||||
{ // line 1, address 0x78f2c
|
||||
struct SVECTOR *verts; // $v1
|
||||
char *polys; // $s1
|
||||
int i; // $s0
|
||||
int p; // stack address -56
|
||||
int flag; // stack address -52
|
||||
short *zbuff; // $t5
|
||||
int z; // stack address -48
|
||||
unsigned char r; // $s5
|
||||
unsigned char g; // $s4
|
||||
unsigned char b; // $s3
|
||||
} // line 49, address 0x7911c
|
437
src/C/sound.c
Normal file
437
src/C/sound.c
Normal file
@ -0,0 +1,437 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
long dummylong[3] = { 0, 0, 0 };
|
||||
|
||||
/*
|
||||
* Offset 0x7914C
|
||||
* D:\driver2\game\C\SOUND.C (line 114)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ InitSound()
|
||||
{ // line 2, address 0x7914c
|
||||
int ct; // $s0
|
||||
} // line 47, address 0x7923c
|
||||
/*
|
||||
* Offset 0x7923C
|
||||
* D:\driver2\game\C\SOUND.C (line 163)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ClearChannelFields(int channel /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x792B8
|
||||
* D:\driver2\game\C\SOUND.C (line 187)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ ResetSound()
|
||||
{ // line 2, address 0x792b8
|
||||
int ct; // $s0
|
||||
} // line 35, address 0x79398
|
||||
/*
|
||||
* Offset 0x79398
|
||||
* D:\driver2\game\C\SOUND.C (line 399)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
int /*$ra*/ CompleteSoundSetup(int channel /*$s2*/, int bank /*$s0*/, int sample /*$s5*/, int pitch /*$s1*/, int proximity /*stack 16*/)
|
||||
{ // line 1, address 0x79398
|
||||
long bpf; // $a1
|
||||
long rate; // $a1
|
||||
} // line 44, address 0x7956c
|
||||
/*
|
||||
* Offset 0x7956C
|
||||
* D:\driver2\game\C\SOUND.C (line 450)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetChannelPitch(int channel /*$a0*/, int pitch /*$a1*/)
|
||||
{ // line 1, address 0x7956c
|
||||
long rate; // $a0
|
||||
} // line 20, address 0x7961c
|
||||
/*
|
||||
* Offset 0x7962C
|
||||
* D:\driver2\game\C\SOUND.C (line 501)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ ComputeDoppler(struct CHANNEL_DATA *ch /*$s1*/)
|
||||
{ // line 1, address 0x7962c
|
||||
int dist; // $s0
|
||||
int seperationrate; // $v0
|
||||
struct _PLAYER *pl; // $s0
|
||||
} // line 26, address 0x79788
|
||||
/*
|
||||
* Offset 0x7979C
|
||||
* D:\driver2\game\C\SOUND.C (line 635)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ PauseXM()
|
||||
{ // line 1, address 0x7979c
|
||||
int fade; // $v1
|
||||
} // line 20, address 0x797fc
|
||||
/*
|
||||
* Offset 0x797FC
|
||||
* D:\driver2\game\C\SOUND.C (line 657)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ PauseSFX()
|
||||
{ // line 1, address 0x797fc
|
||||
int i; // $s1
|
||||
int fade; // $s3
|
||||
} // line 24, address 0x799c0
|
||||
/*
|
||||
* Offset 0x799C0
|
||||
* D:\driver2\game\C\SOUND.C (line 698)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ UnPauseXM()
|
||||
{ // line 1, address 0x799c0
|
||||
int fade; // $a1
|
||||
} // line 19, address 0x79a18
|
||||
/*
|
||||
* Offset 0x79A18
|
||||
* D:\driver2\game\C\SOUND.C (line 720)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ UnPauseSFX()
|
||||
{ // line 1, address 0x79a18
|
||||
int i; // $s1
|
||||
int fade; // $s2
|
||||
} // line 22, address 0x79ba0
|
||||
/*
|
||||
* Offset 0x79BA0
|
||||
* D:\driver2\game\C\SOUND.C (line 822)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SoundHandler()
|
||||
{ // line 2, address 0x79ba0
|
||||
int ct; // $a0
|
||||
long off; // $a1
|
||||
} // line 16, address 0x79c24
|
||||
/*
|
||||
* Offset 0x79C34
|
||||
* D:\driver2\game\C\SOUND.C (line 904)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
int /*$ra*/ LoadSoundBankDynamic(char *address /*$s2*/, int length /*$s6*/, int dbank /*$a2*/)
|
||||
{ // line 1, address 0x79c34
|
||||
static struct __LSBDinfo tabs; // address 0x0
|
||||
int i; // $a3
|
||||
int num_samples; // $s1
|
||||
int slength; // $s0
|
||||
} // line 73, address 0x79e6c
|
||||
/*
|
||||
* Offset 0x79E6C
|
||||
* D:\driver2\game\C\SOUND.C (line 1124)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ GetFreeChannel()
|
||||
{ // line 1, address 0x79e6c
|
||||
int ct; // $a0
|
||||
int least; // $s1
|
||||
int il; // $s0
|
||||
char status[24]; // stack address -40
|
||||
} // line 32, address 0x79fa0
|
||||
/*
|
||||
* Offset 0x79FA0
|
||||
* D:\driver2\game\C\SOUND.C (line 1163)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ UpdateVolumeAttributesS(int channel /*$s2*/, int proximity /*$s5*/)
|
||||
{ // line 1, address 0x79fa0
|
||||
int volume; // $s1
|
||||
int vol; // $a2
|
||||
long ang; // $s0
|
||||
long dist; // $s6
|
||||
int player_id; // $a3
|
||||
struct VECTOR *pos; // $s3
|
||||
struct VECTOR *cam_pos; // $s4
|
||||
int cam_ang; // $fp
|
||||
long damp; // $v1
|
||||
{ // line 52, address 0x7a21c
|
||||
} // line 54, address 0x7a268
|
||||
} // line 67, address 0x7a398
|
||||
/*
|
||||
* Offset 0x7A3C8
|
||||
* D:\driver2\game\C\SOUND.C (line 1257)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ CalculateVolume(int channel /*$a2*/)
|
||||
{ // line 1, address 0x7a3c8
|
||||
int volume; // $s0
|
||||
struct VECTOR *pp; // $a3
|
||||
{ // line 9, address 0x7a45c
|
||||
int distance; // $v1
|
||||
{ // line 14, address 0x7a45c
|
||||
struct VECTOR ofse; // stack address -24
|
||||
} // line 17, address 0x7a45c
|
||||
{ // line 29, address 0x7a514
|
||||
int fade; // $a0
|
||||
} // line 34, address 0x7a56c
|
||||
} // line 36, address 0x7a588
|
||||
} // line 38, address 0x7a59c
|
||||
/*
|
||||
* Offset 0x7A59C
|
||||
* D:\driver2\game\C\SOUND.C (line 1326)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ FESound(int sample /*$s0*/)
|
||||
{ // line 1, address 0x7a59c
|
||||
long bpf; // $a1
|
||||
long rate; // $a1
|
||||
long pitch; // $s5
|
||||
int channel; // $s6
|
||||
} // line 32, address 0x7a728
|
||||
/*
|
||||
* Offset 0x7A728
|
||||
* D:\driver2\game\C\SOUND.C (line 233)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetReverbState(int on /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7A76C
|
||||
* D:\driver2\game\C\SOUND.C (line 253)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetReverbInGameState(int on /*$a0*/)
|
||||
{ // line 1, address 0x7a76c
|
||||
long cl; // $a1
|
||||
} // line 11, address 0x7a7c4
|
||||
/*
|
||||
* Offset 0x7A7C4
|
||||
* D:\driver2\game\C\SOUND.C (line 274)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ SetReverbChannelState(int ch /*$a0*/, int on /*$s0*/)
|
||||
{ // line 1, address 0x7a7c4
|
||||
long cl; // $s1
|
||||
int prev; // $s2
|
||||
} // line 7, address 0x7a818
|
||||
/*
|
||||
* Offset 0x7A818
|
||||
* D:\driver2\game\C\SOUND.C (line 288)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetMasterVolume(int vol /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7A860
|
||||
* D:\driver2\game\C\SOUND.C (line 323)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ StartSound(int channel /*$a0*/, int bank /*$s1*/, int sample /*$s2*/, int volume /*$s0*/, int pitch /*stack 16*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7A8FC
|
||||
* D:\driver2\game\C\SOUND.C (line 357)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
int /*$ra*/ Start3DSoundVolPitch(int channel /*$s1*/, int bank /*$s0*/, int sample /*$s4*/, int x /*$s3*/, int y /*stack 16*/, int z /*stack 20*/, int volume /*stack 24*/, int pitch /*stack 28*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7A9FC
|
||||
* D:\driver2\game\C\SOUND.C (line 342)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
int /*$ra*/ Start3DTrackingSound(int channel /*$s1*/, int bank /*$s0*/, int sample /*$s3*/, struct VECTOR *position /*$s2*/, long *velocity /*stack 16*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7AAE0
|
||||
* D:\driver2\game\C\SOUND.C (line 477)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ SetChannelVolume(int channel /*$s0*/, int volume /*$t1*/, int proximity /*$a2*/)
|
||||
{ // line 1, address 0x7aae0
|
||||
} // line 18, address 0x7ab8c
|
||||
/*
|
||||
* Offset 0x7ABA4
|
||||
* D:\driver2\game\C\SOUND.C (line 1303)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ AllocateReverb(long mode /*$s1*/, long depth /*$s0*/)
|
||||
{ // line 1, address 0x7aba4
|
||||
struct SpuReverbAttr r_attr; // stack address -40
|
||||
} // line 16, address 0x7abfc
|
||||
/*
|
||||
* Offset 0x7AC10
|
||||
* D:\driver2\game\C\SOUND.C (line 307)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
char /*$ra*/ SetPlayerOwnsChannel(int chan /*$a0*/, char player /*$a1*/)
|
||||
{ // line 1, address 0x7ac10
|
||||
} // line 5, address 0x7ac34
|
||||
/*
|
||||
* Offset 0x7AC34
|
||||
* D:\driver2\game\C\SOUND.C (line 588)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ SetChannelPosition3(int channel /*$s1*/, struct VECTOR *position /*$a0*/, long *velocity /*$t0*/, int volume /*$t2*/, int pitch /*stack 16*/, int proximity /*stack 20*/)
|
||||
{ // line 1, address 0x7ac34
|
||||
} // line 24, address 0x7ad28
|
||||
/*
|
||||
* Offset 0x7AD40
|
||||
* D:\driver2\game\C\SOUND.C (line 683)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ PauseSound()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7AD78
|
||||
* D:\driver2\game\C\SOUND.C (line 744)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ UnPauseSound()
|
||||
{ // line 1, address 0x7ad78
|
||||
} // line 9, address 0x7ada8
|
||||
/*
|
||||
* Offset 0x7ADA8
|
||||
* D:\driver2\game\C\SOUND.C (line 760)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ StopChannel(int channel /*$s2*/)
|
||||
{ // line 1, address 0x7ada8
|
||||
{ // line 3, address 0x7adcc
|
||||
unsigned char l; // $s3
|
||||
int vsync; // $s0
|
||||
} // line 11, address 0x7ae40
|
||||
} // line 13, address 0x7ae5c
|
||||
/*
|
||||
* Offset 0x7AE5C
|
||||
* D:\driver2\game\C\SOUND.C (line 780)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ StopAllChannels()
|
||||
{ // line 2, address 0x7ae5c
|
||||
int ct; // $s0
|
||||
} // line 10, address 0x7ae9c
|
||||
/*
|
||||
* Offset 0x7AE9C
|
||||
* D:\driver2\game\C\SOUND.C (line 797)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ LockChannel(int channel /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7AECC
|
||||
* D:\driver2\game\C\SOUND.C (line 811)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ UnlockChannel(int c /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7AEF8
|
||||
* D:\driver2\game\C\SOUND.C (line 845)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
int /*$ra*/ LoadSoundBank(char *address /*$s3*/, int length /*$s2*/, int bank /*$s1*/)
|
||||
{ // line 1, address 0x7aef8
|
||||
int num_samples; // $s4
|
||||
int slength; // $s2
|
||||
int spuaddress; // $s1
|
||||
int ct; // $v1
|
||||
} // line 31, address 0x7afec
|
||||
/*
|
||||
* Offset 0x7AFEC
|
||||
* D:\driver2\game\C\SOUND.C (line 993)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ FreeXM()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7B038
|
||||
* D:\driver2\game\C\SOUND.C (line 1012)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ StartXM(int reverb /*$s2*/)
|
||||
{ // line 1, address 0x7b038
|
||||
int ct; // $s0
|
||||
} // line 16, address 0x7b0b8
|
||||
/*
|
||||
* Offset 0x7B0B8
|
||||
* D:\driver2\game\C\SOUND.C (line 1035)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ StopXM()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7B0DC
|
||||
* D:\driver2\game\C\SOUND.C (line 1073)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetXMVolume(int volume /*$a0*/)
|
||||
{ // line 1, address 0x7b0dc
|
||||
int vol; // $a1
|
||||
} // line 12, address 0x7b12c
|
||||
/*
|
||||
* Offset 0x7B12C
|
||||
* D:\driver2\game\C\SOUND.C (line 1232)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ UpdateVolumeAttributesM(int channel /*$s0*/)
|
||||
{ // line 1, address 0x7b12c
|
||||
int volume; // $a1
|
||||
int vol; // $a0
|
||||
} // line 17, address 0x7b1e0
|
||||
/*
|
||||
* Offset 0x7B1E0
|
||||
* D:\driver2\game\C\SOUND.C (line 1371)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ VsyncProc()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7B22C
|
||||
* D:\driver2\game\C\SOUND.C (line 882)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ UpdateXMSamples(int num_samps /*$s2*/)
|
||||
{ // line 1, address 0x7b22c
|
||||
int i; // $s0
|
||||
} // line 6, address 0x7b290
|
614
src/C/spool.c
Normal file
614
src/C/spool.c
Normal file
@ -0,0 +1,614 @@
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
int date_date = 0xA11;
|
||||
int date_time = 0x27220B;
|
||||
|
||||
char specTpages[4][12] = {
|
||||
{ 0x36, 0x37, 0x42, 0x43, 0x38, 0x39, 0x44, 0x45, 0x3D, 0x40, 0x3D, 0x40},
|
||||
{ 0x26, 0x27, 0x26, 0x27, 0x2A, 0x2B, 0x2C, 0x2D, 0x30, 0x31, 0x30, 0x31},
|
||||
{ 0x12, 0x13, 0x41, 0x42, 0x43, 0x44, 0xB, 0xC, 0x3F, 0x40, 0x3F, 0x40},
|
||||
{ 0x42, 0x43, 0x4D, 0x4E, 0x49, 0x4A, 0x4B, 0x4C, 0x45, 0x46, 0x47, 0x48}
|
||||
};
|
||||
|
||||
char carTpages[4][8] = {
|
||||
{1, 0x41, 0x3E, 0x32, 0x3F, 0x3A, 0x36, 0x37},
|
||||
{0xA, 0x23, 0x14, 0x25, 0x33, 0x24, 0x26, 0x27},
|
||||
{0x29, 0x36, 0x3E, 0x11, 0x20, 0x3B, 0x12, 0},
|
||||
{0x37, 0x39, 0x44, 0x3A, 0x3C, 0x3B, 0x42, 0x43}
|
||||
};
|
||||
|
||||
int pvsSize[4] = { 0, 0, 0, 0 };
|
||||
|
||||
int SpecialByRegion[4][20] = {
|
||||
{5, 1, 3, 3, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 2, 3, 2, 2, 3, 0},
|
||||
{2, 4, 1, 1, 4, 4, 3, 3, 3, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{2, 4, 1, 1, 1, 1, 1, 1, 4, 2, 3, 3, 5, 0, 0, 0, 0, 0, 0, 0},
|
||||
{2, 5, 4, 1, 2, 1, 4, 3, 2, 2, 2, 2, 3, 3, 3, 0, 0, 0, 0, 0},
|
||||
};
|
||||
|
||||
/*
|
||||
* Offset 0x7B290
|
||||
* D:\driver2\game\C\SPOOL.C (line 532)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ test_changemode()
|
||||
{ // line 2, address 0x7b290
|
||||
struct SPOOLQ *current; // $a3
|
||||
} // line 56, address 0x7b41c
|
||||
/*
|
||||
* Offset 0x7B42C
|
||||
* D:\driver2\game\C\SPOOL.C (line 625)
|
||||
* Stack frame base $sp, length 160
|
||||
* Saved registers at address -8: s0
|
||||
*/
|
||||
int /*$ra*/ check_regions_present()
|
||||
{ // line 2, address 0x7b42c
|
||||
struct AREA_LOAD_INFO regions_to_unpack[3]; // stack address -160
|
||||
int leftright_unpack; // $a2
|
||||
int topbottom_unpack; // $a3
|
||||
int num_regions_to_unpack; // $a1
|
||||
int x; // $v1
|
||||
int z; // $v0
|
||||
int loop; // $t1
|
||||
int retval; // $a3
|
||||
int region_to_unpack; // $a0
|
||||
int barrel_region; // $v1
|
||||
char textbuf[128]; // stack address -136
|
||||
} // line 146, address 0x7b72c
|
||||
/*
|
||||
* Offset 0x7B72C
|
||||
* D:\driver2\game\C\SPOOL.C (line 925)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ UpdateSpool()
|
||||
{ // line 2, address 0x7b72c
|
||||
struct SPOOLQ *current; // $s0
|
||||
struct CdlLOC pos; // stack address -16
|
||||
} // line 52, address 0x7b8e4
|
||||
/*
|
||||
* Offset 0x7B8F4
|
||||
* D:\driver2\game\C\SPOOL.C (line 1161)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ SendTPage()
|
||||
{ // line 2, address 0x7b8f4
|
||||
int tpage2send; // $s2
|
||||
int slot; // $s0
|
||||
int old; // $v1
|
||||
char *tpageaddress; // $t0
|
||||
{ // line 15, address 0x7b968
|
||||
struct RECT cluts; // stack address -32
|
||||
int npalettes; // $s1
|
||||
int i; // $a3
|
||||
unsigned long *clutptr; // $a1
|
||||
} // line 47, address 0x7ba8c
|
||||
} // line 74, address 0x7bb7c
|
||||
/*
|
||||
* Offset 0x7BB7C
|
||||
* D:\driver2\game\C\SPOOL.C (line 1262)
|
||||
* Stack frame base $sp, length 128
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ LoadInAreaTSets(int area /*$t4*/)
|
||||
{ // line 1, address 0x7bb7c
|
||||
unsigned char *tpages; // $s1
|
||||
int ntpages_to_load; // $s3
|
||||
int i; // $s0
|
||||
int slot; // $a0
|
||||
int j; // $a1
|
||||
int address; // $s4
|
||||
int availableslots[16]; // stack address -104
|
||||
int navailable; // $s2
|
||||
char *loadaddr; // $fp
|
||||
} // line 71, address 0x7bdec
|
||||
/*
|
||||
* Offset 0x7BDEC
|
||||
* D:\driver2\game\C\SPOOL.C (line 1337)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ SendSBK()
|
||||
{ // line 2, address 0x7bdec
|
||||
char *address; // $s0
|
||||
int slength; // $s1
|
||||
int i; // $a1
|
||||
unsigned long *source; // $v0
|
||||
unsigned long *dest; // $a0
|
||||
} // line 43, address 0x7bf24
|
||||
/*
|
||||
* Offset 0x7BF24
|
||||
* D:\driver2\game\C\SPOOL.C (line 1484)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ init_spooled_models()
|
||||
{ // line 2, address 0x7bf24
|
||||
int i; // $s1
|
||||
int nmodels; // $s4
|
||||
int length; // $s2
|
||||
int model_number; // $a1
|
||||
char *addr; // $s0
|
||||
struct MODEL *parentmodel; // $a1
|
||||
{ // line 35, address 0x7c024
|
||||
} // line 37, address 0x7c038
|
||||
{ // line 44, address 0x7c06c
|
||||
} // line 52, address 0x7c0b0
|
||||
} // line 59, address 0x7c0f4
|
||||
/*
|
||||
* Offset 0x7C0F4
|
||||
* D:\driver2\game\C\SPOOL.C (line 1574)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ CheckLoadAreaData(int cellx /*$t9*/, int cellz /*$a1*/)
|
||||
{ // line 1, address 0x7c0f4
|
||||
int i; // $a2
|
||||
int nAreas; // $t0
|
||||
struct Spool *spoolptr; // $t1
|
||||
int load; // $a3
|
||||
int force_load_boundary; // $a0
|
||||
} // line 92, address 0x7c2e4
|
||||
/*
|
||||
* Offset 0x7C2F4
|
||||
* D:\driver2\game\C\SPOOL.C (line 1713)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
int /*$ra*/ LoadRegionData(int region /*$s4*/, int target_region /*$s5*/)
|
||||
{ // line 1, address 0x7c2f4
|
||||
int address; // $s0
|
||||
char *target_unpacked_data; // $t1
|
||||
struct Spool *spoolptr; // $s1
|
||||
char *roadmap_buffer; // $s6
|
||||
char *cell_buffer; // $s3
|
||||
} // line 63, address 0x7c4cc
|
||||
/*
|
||||
* Offset 0x7C4CC
|
||||
* D:\driver2\game\C\SPOOL.C (line 1815)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ProcessSpoolInfoLump(char *lump_ptr /*$a2*/, int lump_size /*$a1*/)
|
||||
{ // line 1, address 0x7c4cc
|
||||
int i; // $t2
|
||||
int length; // $v1
|
||||
int slots_count; // $t0
|
||||
int objects_count; // $t1
|
||||
int num_of_regions; // $v0
|
||||
char *alloclist; // $a3
|
||||
} // line 103, address 0x7c628
|
||||
/*
|
||||
* Offset 0x7C628
|
||||
* D:\driver2\game\C\SPOOL.C (line 2351)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ unpack_cellpointers()
|
||||
{ // line 2, address 0x7c628
|
||||
int target_barrel_region; // $t0
|
||||
char *source_packed_data; // $v0
|
||||
int bitpos; // $a3
|
||||
int loop; // $a2
|
||||
int packtype; // $a0
|
||||
unsigned short cell; // $a0
|
||||
unsigned short *short_ptr; // $a1
|
||||
unsigned short pcode; // $t1
|
||||
} // line 86, address 0x7c7b4
|
||||
/*
|
||||
* Offset 0x7C7B4
|
||||
* D:\driver2\game\C\SPOOL.C (line 2509)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ SpecClutsSpooled()
|
||||
{ // line 2, address 0x7c7b4
|
||||
char *loadaddr; // $s4
|
||||
int i; // $s1
|
||||
int j; // $s2
|
||||
int tpage; // $s0
|
||||
struct RECT specCluts; // stack address -48
|
||||
{ // line 13, address 0x7c85c
|
||||
int index; // $a3
|
||||
{ // line 28, address 0x7c984
|
||||
} // line 28, address 0x7c984
|
||||
} // line 33, address 0x7c9c4
|
||||
} // line 37, address 0x7ca20
|
||||
/*
|
||||
* Offset 0x7CA20
|
||||
* D:\driver2\game\C\SPOOL.C (line 2549)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ CleanModelSpooled()
|
||||
{ // line 3, address 0x7ca20
|
||||
int *loadaddr; // $a1
|
||||
int *mem; // $a3
|
||||
{ // line 27, address 0x7cae8
|
||||
} // line 38, address 0x7cb38
|
||||
} // line 42, address 0x7cb64
|
||||
/*
|
||||
* Offset 0x7CB64
|
||||
* D:\driver2\game\C\SPOOL.C (line 2594)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DamagedModelSpooled()
|
||||
{ // line 2, address 0x7cb64
|
||||
int *loadaddr; // $a1
|
||||
int *mem; // $a3
|
||||
{ // line 26, address 0x7cc28
|
||||
} // line 35, address 0x7cc60
|
||||
} // line 39, address 0x7cc8c
|
||||
/*
|
||||
* Offset 0x7CC8C
|
||||
* D:\driver2\game\C\SPOOL.C (line 2635)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ LowModelSpooled()
|
||||
{ // line 2, address 0x7cc8c
|
||||
int *loadaddr; // $a1
|
||||
int *mem; // $a3
|
||||
{ // line 26, address 0x7cd50
|
||||
} // line 37, address 0x7cda0
|
||||
} // line 41, address 0x7cdcc
|
||||
/*
|
||||
* Offset 0x7CDCC
|
||||
* D:\driver2\game\C\SPOOL.C (line 2680)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ CleanSpooled()
|
||||
{ // line 3, address 0x7cdcc
|
||||
char *loadaddr; // $a1
|
||||
{ // line 22, address 0x7cef4
|
||||
struct MODEL *tempModel; // $a1
|
||||
} // line 33, address 0x7cf48
|
||||
} // line 37, address 0x7cf74
|
||||
/*
|
||||
* Offset 0x7CF74
|
||||
* D:\driver2\game\C\SPOOL.C (line 2744)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ Tada()
|
||||
{ // line 2, address 0x7cf74
|
||||
char *loadaddr; // $s1
|
||||
{ // line 7, address 0x7cfc8
|
||||
struct RECT tpage; // stack address -32
|
||||
int spec_tpage; // $a0
|
||||
} // line 20, address 0x7d080
|
||||
{ // line 23, address 0x7d080
|
||||
struct RECT tpage; // stack address -24
|
||||
int spec_tpage; // $a0
|
||||
} // line 36, address 0x7d154
|
||||
{ // line 39, address 0x7d154
|
||||
} // line 45, address 0x7d198
|
||||
} // line 49, address 0x7d1ac
|
||||
/*
|
||||
* Offset 0x7D1AC
|
||||
* D:\driver2\game\C\SPOOL.C (line 2799)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SpecialStartNextBlock()
|
||||
{ // line 2, address 0x7d1ac
|
||||
char *loadaddr; // $s0
|
||||
int fileSector; // $t0
|
||||
} // line 126, address 0x7d538
|
||||
/*
|
||||
* Offset 0x7D548
|
||||
* D:\driver2\game\C\SPOOL.C (line 2956)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ CheckSpecialSpool()
|
||||
{ // line 2, address 0x7d548
|
||||
struct _CAR_DATA *lcp; // $a0
|
||||
int ret; // $a3
|
||||
{ // line 9, address 0x7d584
|
||||
} // line 13, address 0x7d5a4
|
||||
} // line 66, address 0x7d730
|
||||
/*
|
||||
* Offset 0x7D740
|
||||
* D:\driver2\game\C\SPOOL.C (line 3063)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InitSpecSpool()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7D9E0
|
||||
* D:\driver2\game\C\SPOOL.C (line 2442)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ Unpack_CellPtrs()
|
||||
{ // line 2, address 0x7d9e0
|
||||
int region_to_unpack; // $a1
|
||||
int target_barrel_region; // $a1
|
||||
char *source_packed_data; // $v1
|
||||
} // line 27, address 0x7da34
|
||||
/*
|
||||
* Offset 0x7DA34
|
||||
* D:\driver2\game\C\SPOOL.C (line 1970)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ GotRegion()
|
||||
{ // line 2, address 0x7da34
|
||||
int cbr; // $a1
|
||||
} // line 20, address 0x7dac8
|
||||
/*
|
||||
* Offset 0x7DAC8
|
||||
* D:\driver2\game\C\SPOOL.C (line 2246)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ data_cb_misc()
|
||||
{ // line 2, address 0x7dac8
|
||||
{ // line 4, address 0x7dadc
|
||||
struct SPOOLQ *current; // $v0
|
||||
} // line 29, address 0x7db90
|
||||
} // line 30, address 0x7dba0
|
||||
/*
|
||||
* Offset 0x7DBA0
|
||||
* D:\driver2\game\C\SPOOL.C (line 2278)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ready_cb_misc(unsigned char intr /*$s0*/, unsigned char *result /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7DC34
|
||||
* D:\driver2\game\C\SPOOL.C (line 2171)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ data_cb_soundbank()
|
||||
{ // line 2, address 0x7dc34
|
||||
{ // line 4, address 0x7dc48
|
||||
} // line 29, address 0x7dcfc
|
||||
} // line 30, address 0x7dd0c
|
||||
/*
|
||||
* Offset 0x7DD0C
|
||||
* D:\driver2\game\C\SPOOL.C (line 2203)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ready_cb_soundbank(unsigned char intr /*$s0*/, unsigned char *result /*$a2*/)
|
||||
{ // line 1, address 0x7dd0c
|
||||
{ // line 14, address 0x7dd6c
|
||||
struct SPOOLQ *current; // $a0
|
||||
} // line 34, address 0x7ddd8
|
||||
} // line 41, address 0x7de00
|
||||
/*
|
||||
* Offset 0x7DE10
|
||||
* D:\driver2\game\C\SPOOL.C (line 2132)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ data_cb_regions()
|
||||
{ // line 2, address 0x7de10
|
||||
{ // line 4, address 0x7de24
|
||||
struct SPOOLQ *current; // $v0
|
||||
} // line 35, address 0x7dee8
|
||||
} // line 36, address 0x7def8
|
||||
/*
|
||||
* Offset 0x7DEF8
|
||||
* D:\driver2\game\C\SPOOL.C (line 2090)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ready_cb_regions(unsigned char intr /*$s0*/, unsigned char *result /*$a2*/)
|
||||
{ // line 1, address 0x7def8
|
||||
{ // line 20, address 0x7df70
|
||||
struct SPOOLQ *current; // $v1
|
||||
} // line 20, address 0x7df70
|
||||
} // line 39, address 0x7dfcc
|
||||
/*
|
||||
* Offset 0x7DFCC
|
||||
* D:\driver2\game\C\SPOOL.C (line 1993)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ data_cb_textures()
|
||||
{ // line 2, address 0x7dfcc
|
||||
{ // line 4, address 0x7dfe0
|
||||
} // line 40, address 0x7e0d0
|
||||
} // line 41, address 0x7e0e0
|
||||
/*
|
||||
* Offset 0x7E0E0
|
||||
* D:\driver2\game\C\SPOOL.C (line 2036)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ready_cb_textures(unsigned char intr /*$s0*/, unsigned char *result /*$a2*/)
|
||||
{ // line 1, address 0x7e0e0
|
||||
{ // line 14, address 0x7e140
|
||||
struct SPOOLQ *current; // $a2
|
||||
} // line 44, address 0x7e1f0
|
||||
} // line 50, address 0x7e200
|
||||
/*
|
||||
* Offset 0x7E210
|
||||
* D:\driver2\game\C\SPOOL.C (line 591)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ changemode(struct SPOOLQ *current /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7E2B4
|
||||
* D:\driver2\game\C\SPOOL.C (line 836)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DrawCDicon()
|
||||
{ // line 2, address 0x7e2b4
|
||||
unsigned short *palette; // $a1
|
||||
int temp; // $a2
|
||||
int i; // $a0
|
||||
struct RECT dest; // stack address -16
|
||||
} // line 20, address 0x7e334
|
||||
/*
|
||||
* Offset 0x7E334
|
||||
* D:\driver2\game\C\SPOOL.C (line 859)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ CheckValidSpoolData()
|
||||
{ // line 2, address 0x7e334
|
||||
struct RECT dest; // stack address -16
|
||||
} // line 59, address 0x7e3c4
|
||||
/*
|
||||
* Offset 0x7E3D4
|
||||
* D:\driver2\game\C\SPOOL.C (line 1104)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ RequestSpool(int type /*$a0*/, int data /*$a1*/, int offset /*$a2*/, int loadsize /*$a3*/, char *address /*stack 16*/, void(*func)() /*stack 20*/)
|
||||
{ // line 1, address 0x7e3d4
|
||||
struct SPOOLQ *next; // $t0
|
||||
int sector; // $v0
|
||||
} // line 22, address 0x7e44c
|
||||
/*
|
||||
* Offset 0x7E44C
|
||||
* D:\driver2\game\C\SPOOL.C (line 1670)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ ClearRegion(int target_region /*$a0*/)
|
||||
{ // line 1, address 0x7e44c
|
||||
int loop; // $a1
|
||||
unsigned short *cell_ptrs_s; // $v1
|
||||
unsigned long *pvsptr; // $v0
|
||||
} // line 41, address 0x7e4fc
|
||||
/*
|
||||
* Offset 0x7E4FC
|
||||
* D:\driver2\game\C\SPOOL.C (line 1129)
|
||||
* Stack frame base $sp, length 168
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ InitSpooling()
|
||||
{ // line 2, address 0x7e4fc
|
||||
int i; // $s0
|
||||
char namebuffer[128]; // stack address -152
|
||||
struct CdlLOC pos; // stack address -24
|
||||
} // line 29, address 0x7e590
|
||||
/*
|
||||
* Offset 0x7E590
|
||||
* D:\driver2\game\C\SPOOL.C (line 1239)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SpoolSYNC()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7E5A8
|
||||
* D:\driver2\game\C\SPOOL.C (line 1545)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetupModels()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7E5E8
|
||||
* D:\driver2\game\C\SPOOL.C (line 1559)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ LoadInAreaModels(int area /*$a0*/)
|
||||
{ // line 2, address 0x7e5e8
|
||||
int address; // $a2
|
||||
int length; // $a3
|
||||
} // line 12, address 0x7e644
|
||||
/*
|
||||
* Offset 0x7E644
|
||||
* D:\driver2\game\C\SPOOL.C (line 1779)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ UnpackRegion(int region_to_unpack /*$s1*/, int target_barrel_region /*$s0*/)
|
||||
{ // line 1, address 0x7e644
|
||||
} // line 33, address 0x7e6c0
|
||||
/*
|
||||
* Offset 0x7E6D4
|
||||
* D:\driver2\game\C\SPOOL.C (line 1928)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ WaitCloseLid()
|
||||
{ // line 2, address 0x7e6d4
|
||||
void(*old)(); // $s1
|
||||
} // line 14, address 0x7e740
|
||||
/*
|
||||
* Offset 0x7E740
|
||||
* D:\driver2\game\C\SPOOL.C (line 1945)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ FoundError(char *name /*$a0*/, unsigned char intr /*$a1*/, unsigned char *result /*$a2*/)
|
||||
{ // line 2, address 0x7e740
|
||||
struct CdlLOC p; // stack address -16
|
||||
} // line 18, address 0x7e78c
|
||||
/*
|
||||
* Offset 0x7E78C
|
||||
* D:\driver2\game\C\SPOOL.C (line 2302)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ StartSpooling()
|
||||
{ // line 2, address 0x7e78c
|
||||
} // line 19, address 0x7e818
|
||||
/*
|
||||
* Offset 0x7E828
|
||||
* D:\driver2\game\C\SPOOL.C (line 2720)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ LowSpooled()
|
||||
{ // line 3, address 0x7e828
|
||||
char *loadaddr; // $v1
|
||||
{ // line 8, address 0x7e840
|
||||
struct MODEL *tempModel; // $a1
|
||||
} // line 17, address 0x7e888
|
||||
} // line 21, address 0x7e8b4
|
||||
/*
|
||||
* Offset 0x7E8B4
|
||||
* D:\driver2\game\C\SPOOL.C (line 3025)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ QuickSpoolSpecial()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7E944
|
||||
* D:\driver2\game\C\SPOOL.C (line 3046)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ PrepareSecretCar()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7E9C0
|
||||
* D:\driver2\game\C\SPOOL.C (line 818)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ stopgame()
|
||||
{ // line 4, address 0x7e9c0
|
||||
} // line 9, address 0x7ea08
|
||||
/*
|
||||
* Offset 0x7EA08
|
||||
* D:\driver2\game\C\SPOOL.C (line 829)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ startgame()
|
||||
{ // line 2, address 0x7ea08
|
||||
} // line 4, address 0x7ea38
|
272
src/C/system.c
Normal file
272
src/C/system.c
Normal file
@ -0,0 +1,272 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
char* LevelFiles[] = {
|
||||
"LEVELS\\CHICAGO.LEV",
|
||||
"LEVELS\\HAVANA.LEV",
|
||||
"LEVELS\\VEGAS.LEV",
|
||||
"LEVELS\\RIO.LEV",
|
||||
};
|
||||
|
||||
char* LoadingScreenNames[] = {
|
||||
"GFX\\LOADCHIC.TIM",
|
||||
"GFX\\LOADHAVA.TIM",
|
||||
"GFX\\LOADVEGA.TIM",
|
||||
"GFX\\LOADRIO.TIM",
|
||||
};
|
||||
|
||||
char currentfilename[128] = { 0 };
|
||||
|
||||
/*
|
||||
* Offset 0x7EA38
|
||||
* D:\driver2\game\C\SYSTEM.C (line 759)
|
||||
* Stack frame base $sp, length 2208
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ LoadfileSeg(char *name /*$v0*/, char *addr /*$s1*/, int address /*$s5*/, int loadsize /*$fp*/)
|
||||
{ // line 1, address 0x7ea38
|
||||
char namebuffer[64]; // stack address -2192
|
||||
unsigned char result[8]; // stack address -2128
|
||||
int sector; // $s2
|
||||
int nsectors; // $s5
|
||||
char sectorbuffer[2048]; // stack address -2120
|
||||
struct CdlFILE info; // stack address -72
|
||||
struct CdlLOC pos; // stack address -48
|
||||
int i; // $a2
|
||||
int toload; // $s4
|
||||
int first; // $a0
|
||||
} // line 120, address 0x7ed58
|
||||
/*
|
||||
* Offset 0x7ED58
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1310)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SwapDrawBuffers2(int player /*$s0*/)
|
||||
{ // line 1, address 0x7ed58
|
||||
int toggle; // $v1
|
||||
} // line 30, address 0x7ee44
|
||||
/*
|
||||
* Offset 0x7EE44
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1364)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ SetupDrawBuffers()
|
||||
{ // line 2, address 0x7ee44
|
||||
struct RECT rect; // stack address -24
|
||||
int i; // $v1
|
||||
} // line 47, address 0x7ef74
|
||||
/*
|
||||
* Offset 0x7EF74
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1429)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ SetupDrawBufferData(int num_players /*stack 0*/)
|
||||
{ // line 1, address 0x7ef74
|
||||
unsigned long *otpt; // $s2
|
||||
unsigned char *primpt; // $s1
|
||||
unsigned char *PRIMpt; // $fp
|
||||
int x[2]; // stack address -72
|
||||
int y[2]; // stack address -64
|
||||
int i; // $s3
|
||||
int j; // $s6
|
||||
int toggle; // $s7
|
||||
int height; // stack address -56
|
||||
} // line 94, address 0x7f180
|
||||
/*
|
||||
* Offset 0x7F180
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1577)
|
||||
* Stack frame base $sp, length 136
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ SetCityType(enum CITYTYPE type /*$a0*/)
|
||||
{ // line 1, address 0x7f180
|
||||
struct CdlFILE cdfile; // stack address -120
|
||||
struct XYPAIR *info; // $s2
|
||||
char namebuffer[64]; // stack address -96
|
||||
unsigned char result[8]; // stack address -32
|
||||
int i; // $a2
|
||||
int sector; // $s0
|
||||
} // line 78, address 0x7f3a0
|
||||
/*
|
||||
* Offset 0x7F3BC
|
||||
* D:\driver2\game\C\SYSTEM.C (line 646)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ Loadfile(char *name /*$a2*/, char *addr /*$s2*/)
|
||||
{ // line 1, address 0x7f3bc
|
||||
char namebuffer[64]; // stack address -88
|
||||
unsigned char result[8]; // stack address -24
|
||||
int nread; // $s0
|
||||
} // line 24, address 0x7f450
|
||||
/*
|
||||
* Offset 0x7F450
|
||||
* D:\driver2\game\C\SYSTEM.C (line 389)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ClearMem(char *mem /*$a0*/, int length /*$a1*/)
|
||||
{ // line 1, address 0x7f450
|
||||
char *end; // $v1
|
||||
} // line 27, address 0x7f4e4
|
||||
/*
|
||||
* Offset 0x7F4E4
|
||||
* D:\driver2\game\C\SYSTEM.C (line 427)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ setMem8(unsigned char *mem /*$a0*/, unsigned char val /*$a1*/, int length /*$a2*/)
|
||||
{ // line 1, address 0x7f4e4
|
||||
unsigned char *end; // $v1
|
||||
unsigned long lval; // $a3
|
||||
} // line 32, address 0x7f58c
|
||||
/*
|
||||
* Offset 0x7F58C
|
||||
* D:\driver2\game\C\SYSTEM.C (line 469)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ setMem16(unsigned short *mem /*$a0*/, unsigned short val /*$a1*/, int length /*$a2*/)
|
||||
{ // line 1, address 0x7f58c
|
||||
unsigned short *end; // $a3
|
||||
unsigned long lval; // $a2
|
||||
} // line 26, address 0x7f61c
|
||||
/*
|
||||
* Offset 0x7F61C
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1566)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ResetCityType()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7F630
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1682)
|
||||
* Stack frame base $sp, length 192
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ FileExists(char *filename /*$a2*/)
|
||||
{ // line 1, address 0x7f630
|
||||
struct CdlFILE cdfile; // stack address -176
|
||||
char namebuffer[128]; // stack address -152
|
||||
unsigned char result[8]; // stack address -24
|
||||
int retries; // $s1
|
||||
} // line 26, address 0x7f6a8
|
||||
/*
|
||||
* Offset 0x7F6A8
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1723)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
enum CDTYPE /*$ra*/ DiscSwapped(char *filename /*$s1*/)
|
||||
{ // line 1, address 0x7f6a8
|
||||
struct CdlFILE cdfile; // stack address -40
|
||||
int ret; // $v1
|
||||
} // line 39, address 0x7f764
|
||||
/*
|
||||
* Offset 0x7F764
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1253)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SwapDrawBuffers()
|
||||
{ // line 2, address 0x7f764
|
||||
} // line 50, address 0x7f828
|
||||
/*
|
||||
* Offset 0x7F828
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1535)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ InitaliseDrawEnv(struct DB *pBuff /*$s0*/, int x /*$s4*/, int y /*$s3*/, int w /*$s1*/, int h /*stack 16*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7F8B0
|
||||
* D:\driver2\game\C\SYSTEM.C (line 580)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ Init_FileSystem()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7F8D8
|
||||
* D:\driver2\game\C\SYSTEM.C (line 622)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DoCDRetry()
|
||||
{ // line 2, address 0x7f8d8
|
||||
static int retries; // address 0xc
|
||||
unsigned char result[8]; // stack address -16
|
||||
} // line 11, address 0x7f920
|
||||
/*
|
||||
* Offset 0x7F920
|
||||
* D:\driver2\game\C\SYSTEM.C (line 952)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ReportMode(int on /*$s0*/)
|
||||
{ // line 1, address 0x7f920
|
||||
static unsigned char param[8]; // address 0x0
|
||||
} // line 15, address 0x7f95c
|
||||
/*
|
||||
* Offset 0x7F96C
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1017)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ loadsectors(char *addr /*$a0*/, int sector /*$v0*/, int nsectors /*$a2*/)
|
||||
{ // line 1, address 0x7f96c
|
||||
struct CdlLOC pos; // stack address -16
|
||||
} // line 18, address 0x7f9ec
|
||||
/*
|
||||
* Offset 0x7F9EC
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1221)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ EnableDisplay()
|
||||
{ // line 2, address 0x7f9ec
|
||||
int i; // $s1
|
||||
} // line 9, address 0x7fa58
|
||||
/*
|
||||
* Offset 0x7FA58
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1239)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DisableDisplay()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7FA78
|
||||
* D:\driver2\game\C\SYSTEM.C (line 1349)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ UpdatePadData()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7FAAC
|
||||
* D:\driver2\game\C\SYSTEM.C (line 978)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ data_ready()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x7FADC
|
||||
* D:\driver2\game\C\SYSTEM.C (line 987)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ sector_ready(unsigned char intr /*$a0*/, unsigned char *result /*$a1*/)
|
||||
{ // line 1, address 0x7fadc
|
||||
{ // line 17, address 0x7fb4c
|
||||
struct CdlLOC p; // stack address -16
|
||||
} // line 27, address 0x7fb9c
|
||||
} // line 28, address 0x7fbac
|
136
src/C/targets.c
Normal file
136
src/C/targets.c
Normal file
@ -0,0 +1,136 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
SVECTOR targetArrowVerts[43] =
|
||||
{
|
||||
{ 65491, 65266, 0, 0 },
|
||||
{ 45, 65266, 0, 0 },
|
||||
{ 45, 65446, 0, 0 },
|
||||
{ 90, 65446, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
{ 65446, 65446, 0, 0 },
|
||||
{ 65491, 65446, 0, 0 },
|
||||
{ 65440, 64768, 0, 0 },
|
||||
{ 96, 64768, 0, 0 },
|
||||
{ 96, 65320, 0, 0 },
|
||||
{ 65440, 65320, 0, 0 },
|
||||
{ 88, 65476, 0, 0 },
|
||||
{ 36, 65528, 0, 0 },
|
||||
{ 65500, 65528, 0, 0 },
|
||||
{ 65448, 65476, 0, 0 },
|
||||
{ 65448, 65404, 0, 0 },
|
||||
{ 65500, 65352, 0, 0 },
|
||||
{ 36, 65352, 0, 0 },
|
||||
{ 88, 65404, 0, 0 },
|
||||
{ 177, 65417, 0, 0 },
|
||||
{ 73, 65521, 0, 0 },
|
||||
{ 65463, 65521, 0, 0 },
|
||||
{ 65359, 65417, 0, 0 },
|
||||
{ 65359, 65271, 0, 0 },
|
||||
{ 65463, 65167, 0, 0 },
|
||||
{ 73, 65167, 0, 0 },
|
||||
{ 177, 65271, 0, 0 },
|
||||
{ 65488, 65152, 0, 0 },
|
||||
{ 65488, 65104, 0, 0 },
|
||||
{ 65440, 65104, 0, 0 },
|
||||
{ 65440, 65056, 0, 0 },
|
||||
{ 96, 65056, 0, 0 },
|
||||
{ 96, 65104, 0, 0 },
|
||||
{ 48, 65104, 0, 0 },
|
||||
{ 48, 65152, 0, 0 },
|
||||
{ 221, 65387, 0, 0 },
|
||||
{ 91, 65517, 0, 0 },
|
||||
{ 65445, 65517, 0, 0 },
|
||||
{ 65315, 65387, 0, 0 },
|
||||
{ 65315, 65205, 0, 0 },
|
||||
{ 65445, 65075, 0, 0 },
|
||||
{ 91, 65075, 0, 0 },
|
||||
{ 221, 65205, 0, 0 }
|
||||
};
|
||||
|
||||
char normalTargetArrowTris[] = { 0, 1, 2, 0, 2, 6, 5, 3, 4 };
|
||||
|
||||
char loseTailTargetArrowTris[] = { 7, 8, 9, 7, 9, 0xA, 0xB, 0xC, 0xD, 0xB, 0xD, 0xE };
|
||||
|
||||
char windowTargetArrowTris[] = {
|
||||
0x13, 0x14, 0x15, 0x13, 0x15, 0x16, 0x1A, 0x13, 0x16,
|
||||
0x1A, 0x16, 0x17, 0x19, 0x1A, 0x17, 0x19, 0x17, 0x18,
|
||||
0x1B, 0x1C, 0x22, 0x1C, 0x21, 0x22, 0x1D, 0x1E, 0x1F,
|
||||
0x1D, 0x1F, 0x20
|
||||
};
|
||||
|
||||
char maxSpeedTargetArrowTris[] = {
|
||||
0x23, 0x24, 0x25, 0x23, 0x25, 0x26, 0x2A, 0x23, 0x26,
|
||||
0x2A, 0x26, 0x27, 0x29, 0x2A, 0x27, 0x29, 0x27, 0x28
|
||||
};
|
||||
|
||||
TARGET_ARROW_MODEL targetArrowModel[4] =
|
||||
{
|
||||
{ &targetArrowVerts, &normalTargetArrowTris, sizeof(normalTargetArrowTris) / 3 },
|
||||
{ &targetArrowVerts, &loseTailTargetArrowTris, sizeof(loseTailTargetArrowTris) / 3 },
|
||||
{ &targetArrowVerts, &windowTargetArrowTris, sizeof(windowTargetArrowTris) / 3 },
|
||||
{ &targetArrowVerts, &maxSpeedTargetArrowTris, sizeof(maxSpeedTargetArrowTris) / 3 }
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x7FBAC
|
||||
* D:\driver2\game\C\TARGETS.C (line 213)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ Draw3DTarget(struct VECTOR *position /*$s0*/, int flags /*$s2*/)
|
||||
{ // line 1, address 0x7fbac
|
||||
struct VECTOR pos; // stack address -32
|
||||
int shadow; // $s1
|
||||
} // line 49, address 0x7fdb0
|
||||
/*
|
||||
* Offset 0x7FDB0
|
||||
* D:\driver2\game\C\TARGETS.C (line 267)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ DrawTargetArrowModel(struct TARGET_ARROW_MODEL *pTargetArrowModel /*$s1*/, struct VECTOR *pPosition /*$s2*/, int shadow /*$s4*/, int invert /*$s3*/)
|
||||
{ // line 1, address 0x7fdb0
|
||||
{ // line 4, address 0x7fe04
|
||||
struct VECTOR tempVec; // stack address -56
|
||||
struct SVECTOR *pVerts; // $s0
|
||||
struct SVECTOR temp; // stack address -40
|
||||
char *pVertIndex; // $a3
|
||||
{ // line 16, address 0x7fe94
|
||||
struct POLY_F3 *poly; // $t0
|
||||
int z; // stack address -32
|
||||
} // line 56, address 0x800ac
|
||||
} // line 62, address 0x80140
|
||||
} // line 63, address 0x80160
|
||||
/*
|
||||
* Offset 0x80160
|
||||
* D:\driver2\game\C\TARGETS.C (line 412)
|
||||
* Stack frame base $sp, length 144
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawStopZone(struct VECTOR *pPosition /*$s5*/)
|
||||
{ // line 1, address 0x80160
|
||||
struct VECTOR *pVector; // $s0
|
||||
struct VECTOR pStopZonePt[4]; // stack address -128
|
||||
struct POLY_FT4 *pPoly; // $s1
|
||||
long *pOut; // $s2
|
||||
long sz; // stack address -48
|
||||
{ // line 18, address 0x80264
|
||||
struct SVECTOR temp; // stack address -64
|
||||
long p; // stack address -56
|
||||
long flag; // stack address -52
|
||||
} // line 53, address 0x80374
|
||||
} // line 77, address 0x804e4
|
||||
/*
|
||||
* Offset 0x804E4
|
||||
* D:\driver2\game\C\TARGETS.C (line 496)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ WorldToCameraPositions(struct VECTOR *pGlobalPositionIn /*$s1*/, struct VECTOR *pCameraPositionOut /*$s0*/, int count /*$s2*/)
|
||||
{ // line 1, address 0x804e4
|
||||
{ // line 4, address 0x80520
|
||||
struct VECTOR temp; // stack address -48
|
||||
} // line 6, address 0x80520
|
||||
} // line 15, address 0x80590
|
175
src/C/texture.c
Normal file
175
src/C/texture.c
Normal file
@ -0,0 +1,175 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
SXYPAIR tpagepos[20] =
|
||||
{
|
||||
{ 640, 0 },
|
||||
{ 704, 0 },
|
||||
{ 768, 0 },
|
||||
{ 832, 0 },
|
||||
{ 896, 0 },
|
||||
{ 960, 0 },
|
||||
{ 512, 256 },
|
||||
{ 576, 256 },
|
||||
{ 640, 256 },
|
||||
{ 704, 256 },
|
||||
{ 768, 256 },
|
||||
{ 832, 256 },
|
||||
{ 896, 256 },
|
||||
{ 448, 0 },
|
||||
{ 512, 0 },
|
||||
{ 576, 0 },
|
||||
{ 320, 256 },
|
||||
{ 384, 256 },
|
||||
{ 448, 256 },
|
||||
{ 65535, 65535 }
|
||||
};
|
||||
|
||||
int texture_is_icon = 0;
|
||||
|
||||
/*
|
||||
* Offset 0x80590
|
||||
* D:\driver2\game\C\TEXTURE.C (line 126)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ IncrementTPageNum(struct RECT *tpage /*$t0*/)
|
||||
{ // line 1, address 0x80590
|
||||
int i; // $a3
|
||||
} // line 27, address 0x80654
|
||||
/*
|
||||
* Offset 0x80654
|
||||
* D:\driver2\game\C\TEXTURE.C (line 191)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ Find_TexID(struct MODEL *model /*$t0*/, int t_id /*$a1*/)
|
||||
{ // line 1, address 0x80654
|
||||
char *polylist; // $a2
|
||||
int i; // $a3
|
||||
{ // line 12, address 0x806a0
|
||||
} // line 15, address 0x806b8
|
||||
{ // line 18, address 0x806b8
|
||||
} // line 21, address 0x806b8
|
||||
{ // line 24, address 0x806b8
|
||||
} // line 27, address 0x806b8
|
||||
{ // line 31, address 0x806b8
|
||||
} // line 34, address 0x806b8
|
||||
{ // line 38, address 0x806b8
|
||||
} // line 41, address 0x806b8
|
||||
{ // line 44, address 0x806b8
|
||||
} // line 47, address 0x806b8
|
||||
{ // line 50, address 0x806b8
|
||||
} // line 53, address 0x806b8
|
||||
{ // line 56, address 0x806b8
|
||||
} // line 59, address 0x806b8
|
||||
} // line 67, address 0x806f0
|
||||
/*
|
||||
* Offset 0x806F0
|
||||
* D:\driver2\game\C\TEXTURE.C (line 378)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ LoadPermanentTPages(int *sector /*$fp*/)
|
||||
{ // line 1, address 0x806f0
|
||||
int tloop; // $s1
|
||||
int i; // $s1
|
||||
int tset; // $s0
|
||||
int nsectors; // $s3
|
||||
char *tpagebuffer; // $s2
|
||||
{ // line 67, address 0x80944
|
||||
int specmodel; // $a1
|
||||
int page1; // $s6
|
||||
int page2; // $s5
|
||||
{ // line 87, address 0x809ec
|
||||
int temp; // $s4
|
||||
int clutsLoaded; // $s7
|
||||
} // line 126, address 0x80b40
|
||||
} // line 127, address 0x80b40
|
||||
} // line 197, address 0x80c18
|
||||
/*
|
||||
* Offset 0x80C18
|
||||
* D:\driver2\game\C\TEXTURE.C (line 602)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ GetTextureDetails(char *name /*stack 0*/, struct TEXTURE_DETAILS *info /*$s3*/)
|
||||
{ // line 1, address 0x80c18
|
||||
int i; // $s2
|
||||
int j; // $s1
|
||||
int texamt; // $s4
|
||||
struct TEXINF *texinf; // $v1
|
||||
char *nametable; // stack address -56
|
||||
} // line 45, address 0x80dd8
|
||||
/*
|
||||
* Offset 0x80E08
|
||||
* D:\driver2\game\C\TEXTURE.C (line 290)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
struct TEXINF * /*$ra*/ GetTextureInfoName(char *name /*$a0*/, struct TPAN *result /*$s0*/)
|
||||
{ // line 1, address 0x80e08
|
||||
int tpagenum; // stack address -16
|
||||
int texturenum; // stack address -12
|
||||
} // line 10, address 0x80e44
|
||||
/*
|
||||
* Offset 0x80E44
|
||||
* D:\driver2\game\C\TEXTURE.C (line 116)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ IncrementClutNum(struct RECT *clut /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x80E7C
|
||||
* D:\driver2\game\C\TEXTURE.C (line 155)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
int /*$ra*/ LoadTPageAndCluts(struct RECT *tpage /*$s5*/, struct RECT *cluts /*$s2*/, int tpage2send /*$s6*/, char *tpageaddress /*$s0*/)
|
||||
{ // line 1, address 0x80e7c
|
||||
int i; // $s3
|
||||
int npalettes; // $s4
|
||||
struct RECT temptpage; // stack address -40
|
||||
} // line 30, address 0x80fa4
|
||||
/*
|
||||
* Offset 0x80FA4
|
||||
* D:\driver2\game\C\TEXTURE.C (line 261)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
struct TEXINF * /*$ra*/ GetTEXINFName(char *name /*$fp*/, int *tpagenum /*stack 4*/, int *texturenum /*stack 8*/)
|
||||
{ // line 1, address 0x80fa4
|
||||
int i; // $s4
|
||||
int j; // $s1
|
||||
int texamt; // $s2
|
||||
struct TEXINF *texinf; // $s3
|
||||
char *nametable; // $s6
|
||||
} // line 26, address 0x810a0
|
||||
/*
|
||||
* Offset 0x810A0
|
||||
* D:\driver2\game\C\TEXTURE.C (line 334)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ update_slotinfo(int tpage /*$a0*/, int slot /*$a1*/, struct RECT *pos /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x810E8
|
||||
* D:\driver2\game\C\TEXTURE.C (line 347)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ProcessTextureInfo(char *lump_ptr /*$a1*/)
|
||||
{ // line 1, address 0x810e8
|
||||
int i; // $a0
|
||||
} // line 28, address 0x81180
|
||||
/*
|
||||
* Offset 0x81180
|
||||
* D:\driver2\game\C\TEXTURE.C (line 578)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ ReloadIcons()
|
||||
{ // line 2, address 0x81180
|
||||
struct RECT tpage; // stack address -88
|
||||
struct RECT clutpos; // stack address -80
|
||||
char name[64]; // stack address -72
|
||||
} // line 21, address 0x811a8
|
219
src/C/tile.c
Normal file
219
src/C/tile.c
Normal file
@ -0,0 +1,219 @@
|
||||
|
||||
/*
|
||||
* Offset 0x41B78
|
||||
* D:\driver2\game\C\TILE.C (line 79)
|
||||
* Stack frame base $sp, length 16
|
||||
* Saved registers at address -8: s0
|
||||
*/
|
||||
void /*$ra*/ Tile1x1(struct MODEL *model /*$a0*/)
|
||||
{ // line 1, address 0x41b78
|
||||
int i; // $t3
|
||||
unsigned char *polys; // $t0
|
||||
struct SVECTOR *verts; // $t1
|
||||
struct POLY_FT4 *prims; // $a2
|
||||
unsigned long clut; // $t6
|
||||
unsigned long tpage; // $a1
|
||||
{ // line 14, address 0x41bb4
|
||||
unsigned long indices; // $a3
|
||||
unsigned long texInfo; // $t2
|
||||
{ // line 14, address 0x41bb4
|
||||
long *ot; // $t8
|
||||
{ // line 14, address 0x41bb4
|
||||
int Z; // stack address -16
|
||||
unsigned long uv_01; // $t4
|
||||
unsigned long uv_23; // $t5
|
||||
//0x1B4 otherhalf
|
||||
{ // line 65, address 0x41d2c
|
||||
int r2; // $a0
|
||||
} // line 65, address 0x41d2c
|
||||
} // line 82, address 0x41db0
|
||||
} // line 83, address 0x41db0
|
||||
} // line 84, address 0x41db0
|
||||
} // line 87, address 0x41de4
|
||||
/*
|
||||
* Offset 0x41DE4
|
||||
* D:\driver2\game\C\TILE.C (line 180)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ DrawTILES(int tile_amount /*$s2*/)
|
||||
{ // line 1, address 0x41de4
|
||||
{ // line 21, address 0x41eec
|
||||
} // line 24, address 0x41f24
|
||||
{ // line 28, address 0x41f24
|
||||
struct PACKED_CELL_OBJECT **tilePointers; // $s3
|
||||
int previous_matrix; // $s4
|
||||
{ // line 40, address 0x41f9c
|
||||
int model_number; // $s0
|
||||
int z; // $a1
|
||||
{ // line 43, address 0x41f9c
|
||||
int yang; // $a1
|
||||
struct PACKED_CELL_OBJECT *ppco; // $a0
|
||||
} // line 61, address 0x42020
|
||||
{ // line 90, address 0x42094
|
||||
struct MODEL *model; // $a0
|
||||
} // line 99, address 0x420c8
|
||||
} // line 102, address 0x420c8
|
||||
} // line 105, address 0x42118
|
||||
} // line 107, address 0x42118
|
||||
/*
|
||||
* Offset 0x42118
|
||||
* D:\driver2\game\C\TILE.C (line 292)
|
||||
* Stack frame base $sp, length 8
|
||||
* Saved registers at address -8: s0
|
||||
*/
|
||||
void /*$ra*/ makeMesh(struct MVERTEX *VSP[5][5] /*$t4*/, int m /*$t2*/, int n /*$a2*/)
|
||||
{ // line 1, address 0x42118
|
||||
{ // line 21, address 0x42130
|
||||
int a; // $t0
|
||||
int b; // $t1
|
||||
} // line 21, address 0x42130
|
||||
{ // line 21, address 0x42130
|
||||
int a; // $a3
|
||||
} // line 21, address 0x42130
|
||||
{ // line 21, address 0x42130
|
||||
int a; // $a0
|
||||
int b; // $a1
|
||||
} // line 21, address 0x42130
|
||||
{ // line 28, address 0x4221c
|
||||
int a; // $t0
|
||||
int b; // $t1
|
||||
} // line 28, address 0x4221c
|
||||
{ // line 28, address 0x4221c
|
||||
int a; // $a3
|
||||
} // line 28, address 0x4221c
|
||||
{ // line 28, address 0x4221c
|
||||
int a; // $a0
|
||||
int b; // $a1
|
||||
} // line 28, address 0x4221c
|
||||
{ // line 34, address 0x422f4
|
||||
int k; // $s0
|
||||
{ // line 35, address 0x422f4
|
||||
int a; // $t0
|
||||
int b; // $t1
|
||||
} // line 35, address 0x422f4
|
||||
{ // line 35, address 0x422f4
|
||||
int a; // $a3
|
||||
} // line 35, address 0x422f4
|
||||
{ // line 35, address 0x422f4
|
||||
int a; // $a0
|
||||
int b; // $a1
|
||||
} // line 35, address 0x422f4
|
||||
{ // line 40, address 0x423e0
|
||||
int a; // $t0
|
||||
int b; // $t1
|
||||
} // line 40, address 0x423e0
|
||||
{ // line 40, address 0x423e0
|
||||
int a; // $a3
|
||||
} // line 40, address 0x423e0
|
||||
{ // line 40, address 0x423e0
|
||||
int a; // $a0
|
||||
int b; // $a1
|
||||
} // line 40, address 0x423e0
|
||||
} // line 44, address 0x424c0
|
||||
{ // line 48, address 0x424c8
|
||||
int a; // $t1
|
||||
int b; // $t5
|
||||
} // line 48, address 0x424c8
|
||||
{ // line 51, address 0x42538
|
||||
int a; // $v0
|
||||
int b; // $a1
|
||||
} // line 51, address 0x42538
|
||||
{ // line 55, address 0x42594
|
||||
int a; // $t0
|
||||
int b; // $t2
|
||||
} // line 55, address 0x42594
|
||||
{ // line 55, address 0x42594
|
||||
int a; // $t3
|
||||
int b; // $v0
|
||||
} // line 55, address 0x42594
|
||||
{ // line 55, address 0x42594
|
||||
int a; // $a2
|
||||
} // line 55, address 0x42594
|
||||
{ // line 55, address 0x42594
|
||||
int a; // $t8
|
||||
int b; // $a1
|
||||
} // line 58, address 0x426ac
|
||||
} // line 61, address 0x426b8
|
||||
/*
|
||||
* Offset 0x426B8
|
||||
* D:\driver2\game\C\TILE.C (line 359)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 s1 s2 s3
|
||||
*/
|
||||
void /*$ra*/ drawMesh(struct MVERTEX *VSP[5][5] /*$s2*/, int m /*$s3*/, int n /*$s1*/, struct _pct *pc /*$a3*/)
|
||||
{ // line 1, address 0x426b8
|
||||
int j; // $t6
|
||||
int k; // $t9
|
||||
struct POLY_FT4 *prims; // $t1
|
||||
{ // line 11, address 0x42720
|
||||
int Z1; // stack address -24
|
||||
int Z2; // stack address -20
|
||||
struct MVERTEX *VST[5][5]; // $t2
|
||||
long *ot; // $t7
|
||||
{ // line 23, address 0x4277c
|
||||
int r2; // $v0
|
||||
} // line 23, address 0x4277c
|
||||
{ // line 103, address 0x42a98
|
||||
int r2; // $v0
|
||||
} // line 121, address 0x42b1c
|
||||
} // line 124, address 0x42b1c
|
||||
} // line 127, address 0x42b54
|
||||
/*
|
||||
* Offset 0x42B54
|
||||
* D:\driver2\game\C\TILE.C (line 489)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ SubdivNxM(char *polys /*$t4*/, unsigned long n /*$s1*/, unsigned long m /*$s0*/, int ofse /*$s2*/)
|
||||
{ // line 1, address 0x42b54
|
||||
struct MVERTEX *VSP[5][5]; // $t3
|
||||
struct _pct *pc; // $t2
|
||||
{ // line 1, address 0x42b54
|
||||
unsigned long indices; // $a0
|
||||
struct SVECTOR *v0; // $t1
|
||||
struct SVECTOR *v1; // $a1
|
||||
struct SVECTOR *v2; // $t0
|
||||
} // line 1, address 0x42b54
|
||||
{ // line 1, address 0x42b54
|
||||
unsigned long uv_01; // $v1
|
||||
unsigned long uv_23; // $a2
|
||||
} // line 1, address 0x42b54
|
||||
{ // line 58, address 0x42e54
|
||||
int Z; // stack address -24
|
||||
{ // line 73, address 0x42ec8
|
||||
unsigned long texInfo; // $a0
|
||||
} // line 80, address 0x42f3c
|
||||
} // line 86, address 0x42f6c
|
||||
} // line 88, address 0x42f9c
|
||||
/*
|
||||
* Offset 0x42F9C
|
||||
* D:\driver2\game\C\TILE.C (line 641)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ProcessSubDivisionLump(char *lump_ptr /*$a0*/, int lump_size /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x42FA8
|
||||
* D:\driver2\game\C\TILE.C (line 581)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ TileNxN(struct MODEL *model /*$s4*/, int levels /*$s2*/, int Dofse /*$s6*/)
|
||||
{ // line 1, address 0x42fa8
|
||||
int i; // $s3
|
||||
char *polys; // $s0
|
||||
char ttype; // $a3
|
||||
unsigned long tiletypes; // $s1
|
||||
int baseOffset; // $s5
|
||||
} // line 50, address 0x430f8
|
||||
/*
|
||||
* Offset 0x430F8
|
||||
* D:\driver2\game\C\TILE.C (line 651)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ ProcessLowDetailTable(char *lump_ptr /*$a0*/, int lump_size /*$a1*/)
|
||||
{ // line 1, address 0x430f8
|
||||
int i; // $a1
|
||||
} // line 23, address 0x43174
|
10
src/C/time.c
Normal file
10
src/C/time.c
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
/*
|
||||
* Offset 0x811A8
|
||||
* D:\driver2\game\C\TIME.C (line 5)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ GetTimeStamp(char *buffer /*$a0*/)
|
||||
{
|
||||
}
|
173
src/C/wheelforces.c
Normal file
173
src/C/wheelforces.c
Normal file
@ -0,0 +1,173 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
HANDLING_TYPE handlingType[7] = {
|
||||
{0x20, 1, 0, 1},
|
||||
{0x1D, 0, 0, 0},
|
||||
{0x2D, 1, 1, 0},
|
||||
{0x37, 1, 1, 0},
|
||||
{0x44, 1, 1, 0},
|
||||
{0x20, 1, 0, 1},
|
||||
{0x1D, 0, 0, 0}
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x811E0
|
||||
* D:\driver2\game\C\WHEELFORCES.C (line 98)
|
||||
* Stack frame base $sp, length 264
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ StepOneCar(struct _CAR_DATA *cp /*$s1*/)
|
||||
{ // line 1, address 0x811e0
|
||||
struct CAR_LOCALS _cl; // stack address -248
|
||||
struct CAR_LOCALS *cl; // $s3
|
||||
int i; // $s0
|
||||
int speed; // $v1
|
||||
struct _sdPlane *SurfacePtr; // stack address -48
|
||||
{ // line 24, address 0x8127c
|
||||
int a; // $v1
|
||||
int b; // $a0
|
||||
} // line 33, address 0x812e4
|
||||
{ // line 35, address 0x812e4
|
||||
long deepestNormal[4]; // stack address -208
|
||||
long deepestLever[4]; // stack address -192
|
||||
long deepestPoint[4]; // stack address -176
|
||||
int lift; // $s5
|
||||
int count; // $a0
|
||||
int friToUse; // $s6
|
||||
struct SVECTOR *carDisp; // $a1
|
||||
{ // line 58, address 0x8137c
|
||||
long pointPos[4]; // stack address -160
|
||||
long surfacePoint[4]; // stack address -144
|
||||
long surfaceNormal[4]; // stack address -128
|
||||
long lever[4]; // stack address -112
|
||||
int newLift; // $a0
|
||||
} // line 98, address 0x81478
|
||||
{ // line 103, address 0x81490
|
||||
long pointVel[4]; // stack address -112
|
||||
long reaction[4]; // stack address -96
|
||||
int strikeVel; // $a2
|
||||
int componant; // $t3
|
||||
static int frictionLimit[6] = { 4116480, 24698880, 4116480, 20582400, 123494400 }; // address 0x0
|
||||
{ // line 111, address 0x81490
|
||||
int lever_dot_n; // $v1
|
||||
int twistY; // $v0
|
||||
int displacementsquared; // $a0
|
||||
int denom; // $a0
|
||||
} // line 111, address 0x81490
|
||||
{ // line 128, address 0x81698
|
||||
int loss; // $v1
|
||||
int limit; // $a1
|
||||
} // line 132, address 0x816d4
|
||||
{ // line 137, address 0x81720
|
||||
{ // line 139, address 0x81734
|
||||
struct VECTOR direction; // stack address -80
|
||||
} // line 139, address 0x81734
|
||||
{ // line 144, address 0x81774
|
||||
struct VECTOR direction; // stack address -64
|
||||
} // line 146, address 0x817ac
|
||||
} // line 151, address 0x81804
|
||||
} // line 152, address 0x81804
|
||||
{ // line 158, address 0x818d4
|
||||
struct VECTOR address; // stack address -112
|
||||
} // line 171, address 0x819ac
|
||||
} // line 172, address 0x819ac
|
||||
} // line 184, address 0x819f4
|
||||
/*
|
||||
* Offset 0x819F4
|
||||
* D:\driver2\game\C\WHEELFORCES.C (line 288)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ GetFrictionScalesDriver1(struct _CAR_DATA *cp /*$t0*/, struct CAR_LOCALS *cl /*$a1*/, int *frontFS /*$a2*/, int *rearFS /*$a3*/)
|
||||
{ // line 1, address 0x819f4
|
||||
struct _HANDLING_TYPE *hp; // $t2
|
||||
{ // line 18, address 0x81a84
|
||||
int q; // $v1
|
||||
} // line 26, address 0x81b00
|
||||
{ // line 99, address 0x81e30
|
||||
int traction; // $a0
|
||||
} // line 105, address 0x81e88
|
||||
} // line 106, address 0x81e88
|
||||
/*
|
||||
* Offset 0x81E88
|
||||
* D:\driver2\game\C\WHEELFORCES.C (line 412)
|
||||
* Stack frame base $sp, length 16
|
||||
*/
|
||||
void /*$ra*/ ConvertTorqueToAngularAcceleration(struct _CAR_DATA *cp /*$a0*/, struct CAR_LOCALS *cl /*$t5*/)
|
||||
{ // line 1, address 0x81e88
|
||||
long nose[4]; // stack address -16
|
||||
int zd; // $a3
|
||||
int i; // $t4
|
||||
int twistY; // $t0
|
||||
int twistZ; // $v1
|
||||
} // line 27, address 0x81fb8
|
||||
/*
|
||||
* Offset 0x81FB8
|
||||
* D:\driver2\game\C\WHEELFORCES.C (line 442)
|
||||
* Stack frame base $sp, length 208
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ AddWheelForcesDriver1(struct _CAR_DATA *cp /*$s2*/, struct CAR_LOCALS *cl /*$s7*/)
|
||||
{ // line 1, address 0x81fb8
|
||||
int oldSpeed; // $v1
|
||||
int frictionScale; // $fp
|
||||
int frontFS; // stack address -96
|
||||
int rearFS; // stack address -92
|
||||
int i; // stack address -84
|
||||
int cdx; // stack address -80
|
||||
int cdz; // stack address -76
|
||||
int sdx; // stack address -72
|
||||
int sdz; // stack address -68
|
||||
int friction_coef; // $s6
|
||||
struct CAR_COSMETICS *car_cos; // stack address -64
|
||||
struct _sdPlane *SurfacePtr; // stack address -88
|
||||
int player_id; // stack address -60
|
||||
{ // line 27, address 0x8210c
|
||||
int oldCompression; // $s5
|
||||
int newCompression; // $s3
|
||||
int susForce; // $s0
|
||||
long wheelPos[4]; // stack address -176
|
||||
long surfacePoint[4]; // stack address -160
|
||||
long surfaceNormal[4]; // stack address -144
|
||||
{ // line 46, address 0x821a8
|
||||
short typ; // $v1
|
||||
} // line 55, address 0x82240
|
||||
{ // line 71, address 0x822ec
|
||||
int chan; // $s1
|
||||
} // line 83, address 0x82384
|
||||
{ // line 95, address 0x823e8
|
||||
struct VECTOR force; // stack address -128
|
||||
long pointVel[4]; // stack address -112
|
||||
int lfx; // $a2
|
||||
int lfz; // $t2
|
||||
int sidevel; // $t0
|
||||
int slidevel; // $t1
|
||||
{ // line 112, address 0x824f4
|
||||
} // line 117, address 0x82558
|
||||
{ // line 150, address 0x82698
|
||||
int hack; // $v0
|
||||
int hx; // $v0
|
||||
int hz; // $v1
|
||||
} // line 150, address 0x82698
|
||||
{ // line 203, address 0x82958
|
||||
int a; // $v1
|
||||
} // line 206, address 0x82990
|
||||
} // line 229, address 0x82a6c
|
||||
} // line 237, address 0x82b44
|
||||
} // line 252, address 0x82c38
|
||||
/*
|
||||
* Offset 0x82C38
|
||||
* D:\driver2\game\C\WHEELFORCES.C (line 66)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ StepCars()
|
||||
{ // line 2, address 0x82c38
|
||||
struct _CAR_DATA **ppCar; // $s0
|
||||
struct _CAR_DATA **end; // $s1
|
||||
{ // line 7, address 0x82c74
|
||||
} // line 10, address 0x82c74
|
||||
{ // line 14, address 0x82c9c
|
||||
} // line 15, address 0x82c9c
|
||||
} // line 17, address 0x82ccc
|
120
src/C/xaplay.c
Normal file
120
src/C/xaplay.c
Normal file
@ -0,0 +1,120 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
char* XANames[] = {
|
||||
"\\DRIVER2\\XA\\XABNK01.XA;1",
|
||||
"\\DRIVER2\\XA\\XABNK02.XA;1",
|
||||
"\\DRIVER2\\XA\\XABNK03.XA;1",
|
||||
"\\DRIVER2\\XA\\XABNK04.XA;1",
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x82CCC
|
||||
* D:\driver2\game\C\XAPLAY.C (line 265)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ PlayXA(int num /*$a3*/, int index /*$t0*/)
|
||||
{ // line 1, address 0x82ccc
|
||||
struct CdlFILTER filt; // stack address -40
|
||||
struct CdlLOC loc; // stack address -32
|
||||
unsigned char res[8]; // stack address -24
|
||||
} // line 25, address 0x82db0
|
||||
/*
|
||||
* Offset 0x82DC8
|
||||
* D:\driver2\game\C\XAPLAY.C (line 155)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ GetXAData(int number /*$a0*/)
|
||||
{ // line 1, address 0x82dc8
|
||||
int i; // $s0
|
||||
struct CdlFILE fp; // stack address -32
|
||||
} // line 12, address 0x82e14
|
||||
/*
|
||||
* Offset 0x82E14
|
||||
* D:\driver2\game\C\XAPLAY.C (line 226)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ PrepareXA()
|
||||
{ // line 2, address 0x82e14
|
||||
unsigned char param[4]; // stack address -16
|
||||
} // line 23, address 0x82ec0
|
||||
/*
|
||||
* Offset 0x82ED0
|
||||
* D:\driver2\game\C\XAPLAY.C (line 320)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ UnprepareXA()
|
||||
{ // line 2, address 0x82ed0
|
||||
unsigned char param[4]; // stack address -16
|
||||
} // line 17, address 0x82f18
|
||||
/*
|
||||
* Offset 0x82F28
|
||||
* D:\driver2\game\C\XAPLAY.C (line 128)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ GetMissionXAData(int number /*$s0*/)
|
||||
{ // line 1, address 0x82f28
|
||||
struct CdlFILE fp; // stack address -32
|
||||
} // line 16, address 0x82f80
|
||||
/*
|
||||
* Offset 0x82F80
|
||||
* D:\driver2\game\C\XAPLAY.C (line 185)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetXAVolume(int volume /*$a0*/)
|
||||
{ // line 1, address 0x82f80
|
||||
} // line 12, address 0x82fe0
|
||||
/*
|
||||
* Offset 0x82FE0
|
||||
* D:\driver2\game\C\XAPLAY.C (line 343)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ StopXA()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x8302C
|
||||
* D:\driver2\game\C\XAPLAY.C (line 386)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ ResumeXA()
|
||||
{ // line 2, address 0x8302c
|
||||
struct CdlFILTER filt; // stack address -32
|
||||
unsigned char res[8]; // stack address -24
|
||||
} // line 22, address 0x830cc
|
||||
/*
|
||||
* Offset 0x830E0
|
||||
* D:\driver2\game\C\XAPLAY.C (line 418)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ PauseXA()
|
||||
{ // line 1, address 0x830e0
|
||||
unsigned char res[8]; // stack address -16
|
||||
} // line 15, address 0x83148
|
||||
/*
|
||||
* Offset 0x83158
|
||||
* D:\driver2\game\C\XAPLAY.C (line 310)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ XAPrepared()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x83164
|
||||
* D:\driver2\game\C\XAPLAY.C (line 355)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ cbready(int intr /*$s1*/, unsigned char *result /*$a1*/)
|
||||
{
|
||||
}
|
688
src/C/xmplay.c
Normal file
688
src/C/xmplay.c
Normal file
@ -0,0 +1,688 @@
|
||||
|
||||
// FIXME: XMPlay from PSX sdk or libxmp
|
||||
|
||||
/*
|
||||
* Offset 0x83218
|
||||
* D:\driver2\game\C\XMPLAY.C (line 454)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
int /*$ra*/ InitXMData(unsigned char *mpp /*$s5*/, int XM_ID /*$a1*/, int S3MPan /*$a2*/)
|
||||
{ // line 1, address 0x83218
|
||||
int t; // $s2
|
||||
int a; // $s4
|
||||
int c; // $s3
|
||||
unsigned long b; // $a2
|
||||
unsigned short b2; // $v1
|
||||
} // line 67, address 0x834b4
|
||||
/*
|
||||
* Offset 0x834B4
|
||||
* D:\driver2\game\C\XMPLAY.C (line 627)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
int /*$ra*/ XM_Init(int VabID /*$s5*/, int XM_ID /*$s4*/, int SongID /*$s0*/, int FirstCh /*$s2*/, int Loop /*stack 16*/, int PlayMask /*stack 20*/, int PlayType /*stack 24*/, int SFXNum /*stack 28*/)
|
||||
{ // line 1, address 0x834b4
|
||||
int i; // $s1
|
||||
int pmsk; // $v1
|
||||
int Chn; // $s0
|
||||
int t; // $a2
|
||||
int SngID; // $s3
|
||||
int fr; // $a3
|
||||
} // line 151, address 0x83994
|
||||
/*
|
||||
* Offset 0x83994
|
||||
* D:\driver2\game\C\XMPLAY.C (line 788)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
int /*$ra*/ JPlayNote(unsigned char *j /*$s0*/, int pmsk /*$s3*/)
|
||||
{ // line 1, address 0x83994
|
||||
unsigned char b; // $s1
|
||||
int ret; // $s2
|
||||
unsigned char note; // $s4
|
||||
} // line 88, address 0x83bcc
|
||||
/*
|
||||
* Offset 0x83BCC
|
||||
* D:\driver2\game\C\XMPLAY.C (line 885)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ JPlayEffects()
|
||||
{ // line 2, address 0x83bcc
|
||||
unsigned char vol; // $a1
|
||||
unsigned char eff; // $s1
|
||||
unsigned char dat; // $s0
|
||||
} // line 119, address 0x83e0c
|
||||
/*
|
||||
* Offset 0x83E0C
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1012)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SPE(unsigned char eff /*$a0*/, unsigned char dat /*$s0*/)
|
||||
{ // line 1, address 0x83e0c
|
||||
int hi; // $v1
|
||||
int lo; // $a0
|
||||
} // line 162, address 0x84218
|
||||
/*
|
||||
* Offset 0x84218
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1182)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ DoEEffects(unsigned char dat /*$a0*/)
|
||||
{ // line 1, address 0x84218
|
||||
unsigned char nib; // $a1
|
||||
} // line 138, address 0x8458c
|
||||
/*
|
||||
* Offset 0x8458C
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1448)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetPer()
|
||||
{ // line 2, address 0x8458c
|
||||
unsigned long *j; // $a1
|
||||
} // line 61, address 0x84730
|
||||
/*
|
||||
* Offset 0x84740
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1596)
|
||||
* Stack frame base $sp, length 8
|
||||
*/
|
||||
void /*$ra*/ DoS3MRetrig(unsigned char inf /*$a0*/)
|
||||
{ // line 1, address 0x84740
|
||||
unsigned char hi; // $a1
|
||||
} // line 76, address 0x84958
|
||||
/*
|
||||
* Offset 0x84958
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1710)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ DoVibrato()
|
||||
{ // line 2, address 0x84958
|
||||
unsigned char q; // $a1
|
||||
unsigned short temp; // $a2
|
||||
} // line 36, address 0x84a58
|
||||
/*
|
||||
* Offset 0x84A58
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1754)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ DoTremolo()
|
||||
{ // line 2, address 0x84a58
|
||||
unsigned char q; // $a2
|
||||
unsigned short temp; // $a3
|
||||
} // line 40, address 0x84ba4
|
||||
/*
|
||||
* Offset 0x84BA4
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1921)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ UpdatePatternData(int SC /*$a0*/)
|
||||
{ // line 1, address 0x84ba4
|
||||
int SP; // $s1
|
||||
int t; // $s0
|
||||
int pmsk; // $a2
|
||||
int FindOffset; // $t0
|
||||
unsigned char *pataddr; // $a0
|
||||
unsigned char patdat; // $a1
|
||||
} // line 174, address 0x85080
|
||||
/*
|
||||
* Offset 0x8509C
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2195)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ ApplyEffs()
|
||||
{ // line 2, address 0x8509c
|
||||
short envpan; // $s2
|
||||
short envvol; // $s1
|
||||
int t; // $s3
|
||||
int pmsk; // $v1
|
||||
short vlm; // $s0
|
||||
short Pn; // $a1
|
||||
unsigned char MaxChans; // $s4
|
||||
} // line 86, address 0x853b8
|
||||
/*
|
||||
* Offset 0x853DC
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2322)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ DoDolbySS()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x854B0
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2398)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ UpdateHardware()
|
||||
{ // line 2, address 0x854b0
|
||||
int t; // $s2
|
||||
int prd; // $s0
|
||||
int SPUKeyOn; // $s6
|
||||
int pmsk; // $v1
|
||||
int Chnl; // $s1
|
||||
unsigned char MaxChans; // $s3
|
||||
int i; // $v1
|
||||
} // line 105, address 0x857e4
|
||||
/*
|
||||
* Offset 0x8580C
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2564)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
short /*$ra*/ ProcessEnvelope(short v /*$a2*/, unsigned char keyon /*$a1*/, int JSmp /*$a2*/)
|
||||
{ // line 1, address 0x8580c
|
||||
unsigned char a2; // $s2
|
||||
unsigned char b; // $s0
|
||||
unsigned short p; // $s1
|
||||
unsigned long *j; // $s5
|
||||
short bpos; // $s3
|
||||
} // line 63, address 0x859dc
|
||||
/*
|
||||
* Offset 0x859DC
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2635)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
short /*$ra*/ ProcessPanEnvelope(short v /*$a2*/, unsigned char keyon /*$a1*/, int JSmp /*$a2*/)
|
||||
{ // line 1, address 0x859dc
|
||||
unsigned char a2; // $s2
|
||||
unsigned char b; // $s0
|
||||
unsigned short p; // $s1
|
||||
unsigned long *j; // $s5
|
||||
short bpos; // $s3
|
||||
} // line 64, address 0x85bac
|
||||
/*
|
||||
* Offset 0x85BAC
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3206)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ XM_Restart(int Song_ID /*$a1*/)
|
||||
{ // line 1, address 0x85bac
|
||||
int t; // $s0
|
||||
} // line 20, address 0x85c8c
|
||||
/*
|
||||
* Offset 0x85CA0
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3160)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ XM_Pause(int Song_ID /*$a1*/)
|
||||
{ // line 1, address 0x85ca0
|
||||
int t; // $s0
|
||||
} // line 19, address 0x85d6c
|
||||
/*
|
||||
* Offset 0x85D80
|
||||
* D:\driver2\game\C\XMPLAY.C (line 331)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ XM_Exit()
|
||||
{ // line 2, address 0x85d80
|
||||
int i; // $s0
|
||||
} // line 11, address 0x85de0
|
||||
/*
|
||||
* Offset 0x85DE0
|
||||
* D:\driver2\game\C\XMPLAY.C (line 374)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ XM_Update()
|
||||
{ // line 2, address 0x85de0
|
||||
} // line 11, address 0x85e20
|
||||
/*
|
||||
* Offset 0x85E30
|
||||
* D:\driver2\game\C\XMPLAY.C (line 429)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ XM_PlayStop(int Song_ID /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x85EA0
|
||||
* D:\driver2\game\C\XMPLAY.C (line 409)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ XM_PlayStart(int Song_ID /*$a2*/, int PlayMask /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x85EF4
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2707)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ XM_SetSongPos(int Song_ID /*$a2*/, unsigned short pos /*$a1*/)
|
||||
{ // line 1, address 0x85ef4
|
||||
int t; // $a2
|
||||
} // line 29, address 0x85fdc
|
||||
/*
|
||||
* Offset 0x85FE4
|
||||
* D:\driver2\game\C\XMPLAY.C (line 592)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ XM_OnceOffInit(int PAL /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x8601C
|
||||
* D:\driver2\game\C\XMPLAY.C (line 345)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ XM_CloseVAB(int VabID /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x86070
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3273)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ XM_SetMasterVol(int Song_ID /*$a2*/, unsigned char Vol /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x860C4
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3331)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ XM_FreeVAG(int addr /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x860E4
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1855)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ UpdateWithTimer(int SC /*$a3*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x861E0
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1887)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ XM_DoFullUpdate(int SC /*$s1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x8629C
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3351)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ XM_Quit(int SongID /*$s0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x862E0
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3449)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ XM_GetFreeVAB()
|
||||
{ // line 2, address 0x862e0
|
||||
int i; // $v1
|
||||
} // line 10, address 0x86318
|
||||
/*
|
||||
* Offset 0x86320
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3461)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ XM_SetVAGAddress(int VabID /*$a0*/, int slot /*$a1*/, int addr /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x86358
|
||||
* D:\driver2\game\C\XMPLAY.C (line 354)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ XM_CloseVAB2(int VabID /*$a3*/)
|
||||
{ // line 1, address 0x86358
|
||||
int i; // $v0
|
||||
} // line 13, address 0x863c0
|
||||
/*
|
||||
* Offset 0x863C0
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3511)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ XM_SetSongAddress(unsigned char *Address /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x86404
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3506)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ XM_GetSongSize()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x8640C
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3527)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ XM_FreeAllSongIDs()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x86418
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3537)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ XM_SetFileHeaderAddress(unsigned char *Address /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x8644C
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3532)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ XM_GetFileHeaderSize()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x86454
|
||||
* D:\driver2\game\C\XMPLAY.C (line 256)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
unsigned short /*$ra*/ GetLogPeriod(unsigned char note /*$a0*/, unsigned short fine /*$a1*/)
|
||||
{ // line 1, address 0x86454
|
||||
} // line 25, address 0x864ec
|
||||
/*
|
||||
* Offset 0x864EC
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1831)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ UpdateXMData()
|
||||
{ // line 2, address 0x864ec
|
||||
int SC; // $s0
|
||||
} // line 20, address 0x86588
|
||||
/*
|
||||
* Offset 0x865A0
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1817)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
short /*$ra*/ DoVol(unsigned long a /*$v0*/, short b /*$a1*/, short c /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x865C8
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1802)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
short /*$ra*/ DoPan(short envpan /*$a0*/, short pan /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x8661C
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1545)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ DoVolSlide(unsigned char dat /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x866AC
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1680)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ DoToneSlide()
|
||||
{ // line 2, address 0x866ac
|
||||
int dist; // $v1
|
||||
} // line 22, address 0x86714
|
||||
/*
|
||||
* Offset 0x86714
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1561)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ DoXMPanSlide(unsigned char inf /*$a0*/)
|
||||
{ // line 1, address 0x86714
|
||||
unsigned char lo; // $v0
|
||||
unsigned char hi; // $a0
|
||||
short pan; // $v1
|
||||
} // line 27, address 0x86798
|
||||
/*
|
||||
* Offset 0x867A0
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1517)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ Arpeggio(unsigned char dat /*$a1*/)
|
||||
{ // line 1, address 0x867a0
|
||||
unsigned char note; // $a2
|
||||
} // line 20, address 0x8684c
|
||||
/*
|
||||
* Offset 0x8684C
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1372)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetInstr(unsigned char inst /*$a0*/)
|
||||
{ // line 1, address 0x8684c
|
||||
unsigned long *j; // $a2
|
||||
} // line 61, address 0x86940
|
||||
/*
|
||||
* Offset 0x86948
|
||||
* D:\driver2\game\C\XMPLAY.C (line 1328)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetNote(unsigned char note /*$a0*/)
|
||||
{ // line 1, address 0x86948
|
||||
unsigned char *j; // $a0
|
||||
} // line 35, address 0x86a20
|
||||
/*
|
||||
* Offset 0x86A28
|
||||
* D:\driver2\game\C\XMPLAY.C (line 568)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned long /*$ra*/ GetLong(unsigned char *mpp /*$a0*/)
|
||||
{ // line 1, address 0x86a28
|
||||
} // line 16, address 0x86a54
|
||||
/*
|
||||
* Offset 0x86A54
|
||||
* D:\driver2\game\C\XMPLAY.C (line 237)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
short /*$ra*/ Interpolate(short p /*$a0*/, short p1 /*$a1*/, short p2 /*$a2*/, short v1 /*$a3*/, int v2 /*stack 16*/)
|
||||
{ // line 1, address 0x86a54
|
||||
} // line 11, address 0x86ad4
|
||||
/*
|
||||
* Offset 0x86AD4
|
||||
* D:\driver2\game\C\XMPLAY.C (line 288)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned short /*$ra*/ JPGetPeriod(unsigned char note /*$a0*/, short fine /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x86B08
|
||||
* D:\driver2\game\C\XMPLAY.C (line 299)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
unsigned short /*$ra*/ GetPeriod(unsigned char note /*$a2*/, unsigned short c2spd /*$a1*/)
|
||||
{ // line 1, address 0x86b08
|
||||
} // line 8, address 0x86b58
|
||||
/*
|
||||
* Offset 0x86B58
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2540)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
long /*$ra*/ GetFreq2(long period /*$v1*/)
|
||||
{ // line 2, address 0x86b58
|
||||
int okt; // $a1
|
||||
long frequency; // $a0
|
||||
} // line 16, address 0x86bb0
|
||||
/*
|
||||
* Offset 0x86BB0
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3068)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ CurrentKeyStat()
|
||||
{ // line 2, address 0x86bb0
|
||||
int t; // $a1
|
||||
char KeyStat[24]; // stack address -32
|
||||
} // line 15, address 0x86c5c
|
||||
/*
|
||||
* Offset 0x86C5C
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3091)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ StpCh(int Channel /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x86C80
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3115)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetFrq(int Channel /*$a0*/, int Pitch /*$a1*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x86CA0
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3104)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetVol(int Channel /*$a0*/, int LVol /*$a1*/, int RVol /*$a2*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x86CCC
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3003)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ PlaySFX(int VBID /*$a0*/, int Channel /*$a1*/, int Inst /*$a2*/, int Pitch /*$a3*/, int LV /*stack 16*/, int RV /*stack 20*/)
|
||||
{ // line 1, address 0x86ccc
|
||||
} // line 23, address 0x86d60
|
||||
/*
|
||||
* Offset 0x86D60
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3308)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ ClearSPU(int VBID /*$a0*/)
|
||||
{ // line 1, address 0x86d60
|
||||
int i; // $s1
|
||||
int Amount; // $a1
|
||||
} // line 15, address 0x86ddc
|
||||
/*
|
||||
* Offset 0x86DDC
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3035)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ InitSPUChannel(int Channel /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x86E44
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3126)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ SilenceXM(int Song_ID /*$a0*/)
|
||||
{ // line 2, address 0x86e44
|
||||
int t; // $s0
|
||||
int i; // $s1
|
||||
int c; // $a0
|
||||
int pmsk; // $v0
|
||||
} // line 25, address 0x86f24
|
||||
/*
|
||||
* Offset 0x86F24
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2289)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ UpdateEffs()
|
||||
{ // line 2, address 0x86f24
|
||||
int t; // $s0
|
||||
int pmsk; // $v1
|
||||
unsigned char MaxChans; // $s1
|
||||
} // line 24, address 0x86fbc
|
||||
/*
|
||||
* Offset 0x86FD8
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2516)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ IntVols(int Vol1 /*$a0*/, int Vol2 /*$a1*/)
|
||||
{ // line 1, address 0x86fd8
|
||||
int a; // $v1
|
||||
} // line 11, address 0x87008
|
||||
/*
|
||||
* Offset 0x87008
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3337)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetFreeSongID()
|
||||
{ // line 2, address 0x87008
|
||||
int i; // $v1
|
||||
} // line 12, address 0x87058
|
||||
/*
|
||||
* Offset 0x87058
|
||||
* D:\driver2\game\C\XMPLAY.C (line 3359)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ JPClearSPUFlags(int SongID /*$a0*/)
|
||||
{ // line 1, address 0x87058
|
||||
int i; // $a1
|
||||
} // line 9, address 0x8708c
|
||||
/*
|
||||
* Offset 0x8708C
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2099)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
int /*$ra*/ CalcPlayPos(int StartPos /*$s4*/)
|
||||
{ // line 1, address 0x8708c
|
||||
int SP; // $s1
|
||||
int t; // $s0
|
||||
int i; // $a1
|
||||
} // line 15, address 0x87144
|
||||
/*
|
||||
* Offset 0x87144
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2143)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ JCalcPat(unsigned char *j /*$a0*/)
|
||||
{ // line 2, address 0x87144
|
||||
unsigned char b; // $v1
|
||||
int ret; // $a1
|
||||
} // line 44, address 0x871b4
|
||||
/*
|
||||
* Offset 0x871B4
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2116)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
int /*$ra*/ PACKEDCalcPlayPos(int StartPos /*$s3*/)
|
||||
{ // line 1, address 0x871b4
|
||||
int SP; // $s0
|
||||
int i; // $a1
|
||||
unsigned char *pataddr; // $a0
|
||||
unsigned char patdat; // $v1
|
||||
} // line 23, address 0x87290
|
||||
/*
|
||||
* Offset 0x87290
|
||||
* D:\driver2\game\C\XMPLAY.C (line 2368)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetEmpty(int old /*$t1*/)
|
||||
{ // line 1, address 0x87290
|
||||
int i; // $a3
|
||||
struct XMCHANNEL *j; // $a0
|
||||
} // line 28, address 0x87358
|
545
src/FRONTEND/femain.c
Normal file
545
src/FRONTEND/femain.c
Normal file
@ -0,0 +1,545 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x1C096C
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 1205)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ SetVariable(int var /*$a0*/)
|
||||
{ // line 1, address 0x1c096c
|
||||
int code; // $v1
|
||||
int value; // $a2
|
||||
} // line 157, address 0x1c0c14
|
||||
/*
|
||||
* Offset 0x1C0C14
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 1371)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ LoadFrontendScreens()
|
||||
{ // line 2, address 0x1c0c14
|
||||
int iTpage; // $s0
|
||||
int iNumScreens; // $t6
|
||||
int i; // $t0
|
||||
int j; // $a3
|
||||
struct RECT rect; // stack address -40
|
||||
char *ptr; // $a2
|
||||
} // line 83, address 0x1c0f1c
|
||||
/*
|
||||
* Offset 0x1C0F1C
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 1461)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ LoadBackgroundFile(char *name /*$s4*/)
|
||||
{ // line 1, address 0x1c0f1c
|
||||
int iTpage; // $s2
|
||||
struct RECT rect; // stack address -72
|
||||
int p; // $s0
|
||||
int pages[7]; // stack address -64
|
||||
} // line 48, address 0x1c10ec
|
||||
/*
|
||||
* Offset 0x1C10EC
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 1516)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetupBackgroundPolys()
|
||||
{ // line 2, address 0x1c10ec
|
||||
int i; // $v1
|
||||
int tpage; // $t3
|
||||
} // line 64, address 0x1c1324
|
||||
/*
|
||||
* Offset 0x1C1324
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 1588)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SetupScreenSprts(struct PSXSCREEN *pScr /*$a0*/)
|
||||
{ // line 1, address 0x1c1324
|
||||
int tpage; // $a1
|
||||
struct POLY_FT3 *null; // $v0
|
||||
} // line 62, address 0x1c1474
|
||||
/*
|
||||
* Offset 0x1C1474
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 1658)
|
||||
* Stack frame base $sp, length 120
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawScreen(struct PSXSCREEN *pScr /*stack 0*/)
|
||||
{ // line 1, address 0x1c1474
|
||||
int i; // $s1
|
||||
char version_info[32]; // stack address -88
|
||||
int numBtnsToDraw; // stack address -56
|
||||
} // line 102, address 0x1c18ac
|
||||
/*
|
||||
* Offset 0x1C18DC
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 1769)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ DisplayOnScreenText()
|
||||
{ // line 2, address 0x1c18dc
|
||||
int i; // $s0
|
||||
char text[32]; // stack address -64
|
||||
{ // line 26, address 0x1c19d4
|
||||
{ // line 28, address 0x1c19dc
|
||||
} // line 29, address 0x1c19e4
|
||||
} // line 30, address 0x1c19e4
|
||||
{ // line 38, address 0x1c1a44
|
||||
int extraVal; // $t1
|
||||
} // line 41, address 0x1c1aa4
|
||||
} // line 78, address 0x1c1ac8
|
||||
/*
|
||||
* Offset 0x1C1AC8
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 1855)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ SetupExtraPoly(char *fileName /*$s5*/, int address /*$s1*/, int offset2 /*$s0*/)
|
||||
{ // line 1, address 0x1c1ac8
|
||||
int i; // $s0
|
||||
int tpage; // $v1
|
||||
struct RECT rect; // stack address -40
|
||||
} // line 61, address 0x1c1cec
|
||||
/*
|
||||
* Offset 0x1C1CEC
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 1941)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ReInitScreens()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1C1E10
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 1991)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ NewSelection(short dir /*$s3*/)
|
||||
{ // line 1, address 0x1c1e10
|
||||
struct RECT rect; // stack address -48
|
||||
struct PSXBUTTON *pNewB; // $s2
|
||||
} // line 94, address 0x1c2274
|
||||
/*
|
||||
* Offset 0x1C22A0
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 2093)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ HandleKeyPress()
|
||||
{ // line 2, address 0x1c22a0
|
||||
{ // line 19, address 0x1c2338
|
||||
int action; // $s0
|
||||
{ // line 48, address 0x1c2444
|
||||
} // line 73, address 0x1c2508
|
||||
} // line 93, address 0x1c255c
|
||||
} // line 139, address 0x1c2660
|
||||
/*
|
||||
* Offset 0x1C2660
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 2300)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ PadChecks()
|
||||
{ // line 2, address 0x1c2660
|
||||
int i; // $a2
|
||||
int oldnum; // $s2
|
||||
} // line 117, address 0x1c2964
|
||||
/*
|
||||
* Offset 0x1C2964
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 2423)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DoFrontEnd()
|
||||
{ // line 2, address 0x1c2964
|
||||
static unsigned char result[8]; // address 0x0
|
||||
} // line 165, address 0x1c2c24
|
||||
/*
|
||||
* Offset 0x1C2C24
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 2630)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ SetFEDrawMode()
|
||||
{ // line 2, address 0x1c2c24
|
||||
struct DRAW_MODE *dm; // $s3
|
||||
} // line 57, address 0x1c2d88
|
||||
/*
|
||||
* Offset 0x1C2D88
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 2745)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4
|
||||
*/
|
||||
int /*$ra*/ FEPrintString(char *string /*$t1*/, int x /*$t2*/, int y /*$s4*/, int justification /*$a3*/, int r /*stack 16*/, int g /*stack 20*/, int b /*stack 24*/)
|
||||
{ // line 1, address 0x1c2d88
|
||||
struct FE_CHARDATA *pFontInfo; // $a0
|
||||
struct SPRT *font; // $t0
|
||||
unsigned char let; // $a0
|
||||
int counter; // $t4
|
||||
{ // line 1, address 0x1c2de4
|
||||
char *pString; // $a1
|
||||
{ // line 1, address 0x1c2de4
|
||||
char let; // $v1
|
||||
int w; // $a2
|
||||
} // line 1, address 0x1c2e30
|
||||
} // line 1, address 0x1c2e30
|
||||
{ // line 47, address 0x1c2f20
|
||||
int tpage; // $v1
|
||||
} // line 47, address 0x1c2f20
|
||||
} // line 64, address 0x1c2fd0
|
||||
/*
|
||||
* Offset 0x1C2FD0
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 2817)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4
|
||||
*/
|
||||
int /*$ra*/ FEPrintStringSized(char *string /*$t2*/, int x /*$t1*/, int y /*$t7*/, int scale /*$a3*/, int transparent /*stack 16*/, int r /*stack 20*/, int g /*stack 24*/, int b /*stack 28*/)
|
||||
{ // line 1, address 0x1c2fd0
|
||||
struct POLY_FT4 *font; // $t0
|
||||
struct FE_CHARDATA *pFontInfo; // $a2
|
||||
char let; // $v1
|
||||
int tpage; // $v0
|
||||
int w; // $t3
|
||||
int h; // $t4
|
||||
} // line 63, address 0x1c31f4
|
||||
/*
|
||||
* Offset 0x1C31F4
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 2894)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ CentreScreen(int bSetup /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1C3428
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 3029)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ CarSelectScreen(int bSetup /*$a0*/)
|
||||
{ // line 2, address 0x1c3428
|
||||
int i; // $a0
|
||||
struct RECT rect; // stack address -32
|
||||
{ // line 116, address 0x1c3734
|
||||
int lastVal; // $a3
|
||||
{ // line 1, address 0x1c37b4
|
||||
{ // line 1, address 0x1c37b4
|
||||
struct RECT rect; // stack address -24
|
||||
} // line 1, address 0x1c37b4
|
||||
} // line 1, address 0x1c37b4
|
||||
} // line 1, address 0x1c37b4
|
||||
{ // line 135, address 0x1c37c8
|
||||
int lastVal; // $a3
|
||||
{ // line 1, address 0x1c3850
|
||||
{ // line 1, address 0x1c3850
|
||||
struct RECT rect; // stack address -24
|
||||
} // line 1, address 0x1c3850
|
||||
} // line 1, address 0x1c3850
|
||||
} // line 1, address 0x1c3850
|
||||
} // line 183, address 0x1c3a58
|
||||
/*
|
||||
* Offset 0x1C3A58
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 3256)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ VibroOnOffScreen(int bSetup /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1C3B14
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 3394)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ MissionSelectScreen(int bSetup /*$a0*/)
|
||||
{ // line 2, address 0x1c3b14
|
||||
int i; // $a1
|
||||
{ // line 29, address 0x1c3bd4
|
||||
int usedB; // $s2
|
||||
int done; // $t0
|
||||
int bP; // $a3
|
||||
int bN; // $s5
|
||||
int shift; // $a3
|
||||
} // line 158, address 0x1c40d0
|
||||
} // line 231, address 0x1c4330
|
||||
/*
|
||||
* Offset 0x1C4330
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 3632)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ MissionCityScreen(int bSetup /*$a0*/)
|
||||
{ // line 6, address 0x1c4330
|
||||
{ // line 71, address 0x1c4494
|
||||
{ // line 71, address 0x1c4494
|
||||
struct RECT rect; // stack address -16
|
||||
} // line 71, address 0x1c4494
|
||||
} // line 71, address 0x1c4494
|
||||
{ // line 77, address 0x1c44bc
|
||||
{ // line 77, address 0x1c44bc
|
||||
struct RECT rect; // stack address -16
|
||||
} // line 77, address 0x1c44bc
|
||||
} // line 77, address 0x1c44bc
|
||||
} // line 88, address 0x1c45f8
|
||||
/*
|
||||
* Offset 0x1C45F8
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 3728)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ CutSceneSelectScreen(int bSetup /*$a0*/)
|
||||
{ // line 2, address 0x1c45f8
|
||||
struct RENDER_ARGS renderArgs; // stack address -48
|
||||
int extraVal; // $a0
|
||||
struct RECT rect; // stack address -24
|
||||
{ // line 61, address 0x1c4790
|
||||
{ // line 61, address 0x1c4790
|
||||
struct RECT rect; // stack address -16
|
||||
} // line 61, address 0x1c4790
|
||||
} // line 61, address 0x1c4790
|
||||
{ // line 1, address 0x1c483c
|
||||
int address; // $a1
|
||||
{ // line 1, address 0x1c483c
|
||||
struct RECT rect; // stack address -16
|
||||
} // line 1, address 0x1c483c
|
||||
} // line 1, address 0x1c483c
|
||||
{ // line 80, address 0x1c48f8
|
||||
{ // line 80, address 0x1c48f8
|
||||
struct RECT rect; // stack address -16
|
||||
} // line 80, address 0x1c48f8
|
||||
} // line 80, address 0x1c48f8
|
||||
{ // line 85, address 0x1c4938
|
||||
{ // line 85, address 0x1c4938
|
||||
struct RECT rect; // stack address -16
|
||||
} // line 85, address 0x1c4938
|
||||
} // line 85, address 0x1c4938
|
||||
} // line 119, address 0x1c4b28
|
||||
/*
|
||||
* Offset 0x1C4B28
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 3855)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ CutSceneCitySelectScreen(int bSetup /*$a0*/)
|
||||
{ // line 2, address 0x1c4b28
|
||||
struct RECT rect; // stack address -24
|
||||
{ // line 1, address 0x1c4e64
|
||||
{ // line 1, address 0x1c4e64
|
||||
struct RECT rect; // stack address -16
|
||||
} // line 1, address 0x1c4e64
|
||||
} // line 1, address 0x1c4e64
|
||||
{ // line 1, address 0x1c4e64
|
||||
{ // line 1, address 0x1c4e64
|
||||
struct RECT rect; // stack address -16
|
||||
} // line 1, address 0x1c4e64
|
||||
} // line 1, address 0x1c4e64
|
||||
{ // line 1, address 0x1c4eac
|
||||
{ // line 1, address 0x1c4eac
|
||||
struct RECT rect; // stack address -16
|
||||
} // line 1, address 0x1c4eac
|
||||
} // line 1, address 0x1c4eac
|
||||
{ // line 1, address 0x1c4fa4
|
||||
{ // line 1, address 0x1c4fa4
|
||||
struct RECT rect; // stack address -16
|
||||
} // line 1, address 0x1c5098
|
||||
} // line 1, address 0x1c5098
|
||||
} // line 140, address 0x1c50a8
|
||||
/*
|
||||
* Offset 0x1C50A8
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4005)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
int /*$ra*/ SetVolumeScreen(int bSetup /*$a0*/)
|
||||
{ // line 2, address 0x1c50a8
|
||||
int last; // $s2
|
||||
char text[4]; // stack address -48
|
||||
int ypos[2]; // stack address -40
|
||||
struct RECT rect; // stack address -32
|
||||
{ // line 43, address 0x1c524c
|
||||
{ // line 43, address 0x1c524c
|
||||
struct DB *db_hold; // $a1
|
||||
} // line 43, address 0x1c524c
|
||||
} // line 43, address 0x1c524c
|
||||
{ // line 65, address 0x1c527c
|
||||
{ // line 65, address 0x1c527c
|
||||
struct DB *db_hold; // $a1
|
||||
} // line 65, address 0x1c527c
|
||||
} // line 65, address 0x1c527c
|
||||
{ // line 92, address 0x1c52c4
|
||||
{ // line 92, address 0x1c52c4
|
||||
struct DB *db_hold; // $a1
|
||||
} // line 92, address 0x1c52c4
|
||||
} // line 92, address 0x1c52c4
|
||||
{ // line 114, address 0x1c5418
|
||||
{ // line 114, address 0x1c5418
|
||||
struct DB *db_hold; // $a1
|
||||
} // line 117, address 0x1c5528
|
||||
} // line 117, address 0x1c5528
|
||||
} // line 143, address 0x1c55f0
|
||||
/*
|
||||
* Offset 0x1C55F0
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4165)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DisplayScoreTable()
|
||||
{ // line 2, address 0x1c55f0
|
||||
int address; // $a2
|
||||
int i; // $s4
|
||||
char text[32]; // stack address -80
|
||||
struct SCORE_ENTRY *pSE; // stack address -48
|
||||
int min; // $v1
|
||||
int frac; // $t0
|
||||
} // line 56, address 0x1c5998
|
||||
/*
|
||||
* Offset 0x1C5998
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4227)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ ScoreScreen(int bSetup /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1C5B44
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4434)
|
||||
* Stack frame base $sp, length 120
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ CheatScreen(int bSetup /*$a0*/)
|
||||
{ // line 2, address 0x1c5b44
|
||||
int numOpen; // $s5
|
||||
int i; // $s1
|
||||
int k; // $s6
|
||||
int *uc; // $s2
|
||||
unsigned char cheatOn[12]; // stack address -104
|
||||
int hackLookup1[4]; // stack address -88
|
||||
int hackLookup2[4]; // stack address -72
|
||||
{ // line 39, address 0x1c5c64
|
||||
int evilRuss[4]; // stack address -56
|
||||
} // line 126, address 0x1c6064
|
||||
} // line 134, address 0x1c6098
|
||||
/*
|
||||
* Offset 0x1C6098
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4642)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
int /*$ra*/ GameNameScreen(int bSetup /*$a0*/)
|
||||
{ // line 2, address 0x1c6098
|
||||
int address; // $s3
|
||||
} // line 14, address 0x1c61a4
|
||||
/*
|
||||
* Offset 0x1C61A4
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4671)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ FEInitCdIcon()
|
||||
{ // line 2, address 0x1c61a4
|
||||
int i; // $a0
|
||||
struct RECT dest; // stack address -24
|
||||
unsigned short *palette; // $a2
|
||||
} // line 38, address 0x1c62f0
|
||||
/*
|
||||
* Offset 0x1C62F0
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4716)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ FEDrawCDicon()
|
||||
{ // line 2, address 0x1c62f0
|
||||
unsigned short *palette; // $a1
|
||||
int temp; // $a2
|
||||
int i; // $a0
|
||||
struct RECT dest; // stack address -16
|
||||
} // line 19, address 0x1c6370
|
||||
/*
|
||||
* Offset 0x1C6370
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 2695)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ EndFrame()
|
||||
{ // line 2, address 0x1c6370
|
||||
struct DB *db_hold; // $a1
|
||||
} // line 21, address 0x1c63fc
|
||||
/*
|
||||
* Offset 0x1C63FC
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 3220)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CopDiffLevelScreen(int bSetup /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1C64A8
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4322)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ SubtitlesOnOffScreen(int bSetup /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1C64F4
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4345)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CityCutOffScreen(int bSetup /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1C6540
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4378)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ ControllerScreen(int bSetup /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1C660C
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4412)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ MainScreen(int bSetup /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1C664C
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4575)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ ImmunityOnOffScreen(int bSetup /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1C6698
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4597)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ InvincibleOnOffScreen(int bSetup /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1C66E4
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4619)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GamePlayScreen(int bSetup /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x1C671C
|
||||
* D:\driver2\game\FRONTEND\FEMAIN.C (line 4742)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ CheatNumlayerSelect(int bSetup /*$a0*/)
|
||||
{
|
||||
}
|
3
src/INCLUDE/texture.h
Normal file
3
src/INCLUDE/texture.h
Normal file
@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
void GetTextureDetails(char *name, struct TEXTURE_DETAILS *info);
|
143
src/MEMCARD/CardMain.c
Normal file
143
src/MEMCARD/CardMain.c
Normal file
@ -0,0 +1,143 @@
|
||||
|
||||
#include "../decomp_defs.h"
|
||||
|
||||
/*
|
||||
* Offset 0x87358
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 120)
|
||||
* Stack frame base $fp, length 56
|
||||
* Saved registers at address -8: s0 fp ra
|
||||
*/
|
||||
int /*$ra*/ CallMemoryCard(int flags /*stack 0*/, int ingame /*stack 4*/)
|
||||
{ // line 3, address 0x87374
|
||||
struct REPLAY_SAVE_HEADER *rheader; // stack address -40
|
||||
struct GAME_SAVE_HEADER *gheader; // stack address -36
|
||||
struct CONFIG_SAVE_HEADER *cheader; // stack address -32
|
||||
char *pt; // stack address -28
|
||||
int ret; // stack address -24
|
||||
int length; // stack address -20
|
||||
{ // line 21, address 0x873d0
|
||||
} // line 23, address 0x873e4
|
||||
{ // line 129, address 0x878a4
|
||||
} // line 135, address 0x878d0
|
||||
} // line 148, address 0x87920
|
||||
/*
|
||||
* Offset 0x8793C
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 270)
|
||||
* Stack frame base $fp, length 24
|
||||
* Saved registers at address -4: fp ra
|
||||
*/
|
||||
void /*$ra*/ libcman_SelectSound()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x87970
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 275)
|
||||
* Stack frame base $fp, length 24
|
||||
* Saved registers at address -4: fp ra
|
||||
*/
|
||||
void /*$ra*/ libcman_ConfirmSound()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x879A4
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 280)
|
||||
* Stack frame base $fp, length 24
|
||||
* Saved registers at address -4: fp ra
|
||||
*/
|
||||
void /*$ra*/ libcman_CancelSound()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x879D8
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 285)
|
||||
* Stack frame base $fp, length 24
|
||||
* Saved registers at address -4: fp ra
|
||||
*/
|
||||
void /*$ra*/ libcman_ErrorSound()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x87A0C
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 290)
|
||||
* Stack frame base $fp, length 24
|
||||
* Saved registers at address -4: fp ra
|
||||
*/
|
||||
void /*$ra*/ libcman_InitControllerLibrary(char *a /*stack 0*/, int b /*stack 4*/, char *c /*stack 8*/, int d /*stack 12*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x87A5C
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 296)
|
||||
* Stack frame base $fp, length 24
|
||||
* Saved registers at address -4: fp ra
|
||||
*/
|
||||
void /*$ra*/ libcman_DeInitControllerLibrary()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x87A9C
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 302)
|
||||
* Stack frame base $fp, length 24
|
||||
* Saved registers at address -4: fp ra
|
||||
*/
|
||||
void /*$ra*/ libcman_ReadControllers()
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x87ACC
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 371)
|
||||
* Stack frame base $fp, length 88
|
||||
* Saved registers at address -4: fp ra
|
||||
*/
|
||||
int /*$ra*/ DoMemoryCard()
|
||||
{ // line 2, address 0x87adc
|
||||
struct RECT rect; // stack address -56
|
||||
char filename[32]; // stack address -48
|
||||
char l; // stack address -16
|
||||
int options; // stack address -12
|
||||
static int ret; // address 0x0
|
||||
} // line 71, address 0x87d34
|
||||
/*
|
||||
* Offset 0x87D4C
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 444)
|
||||
* Stack frame base $fp, length 32
|
||||
* Saved registers at address -4: fp ra
|
||||
*/
|
||||
char * /*$ra*/ LoadMemCardOverlay()
|
||||
{ // line 2, address 0x87d5c
|
||||
char *pt; // stack address -16
|
||||
int ovsize; // stack address -12
|
||||
} // line 16, address 0x87db8
|
||||
/*
|
||||
* Offset 0x87DD0
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 462)
|
||||
* Stack frame base $fp, length 40
|
||||
* Saved registers at address -4: fp ra
|
||||
*/
|
||||
void /*$ra*/ StorePermanentTPage()
|
||||
{ // line 2, address 0x87de0
|
||||
struct RECT rect; // stack address -24
|
||||
unsigned long *buffer; // stack address -16
|
||||
} // line 8, address 0x87e2c
|
||||
/*
|
||||
* Offset 0x87E44
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 472)
|
||||
* Stack frame base $fp, length 40
|
||||
* Saved registers at address -4: fp ra
|
||||
*/
|
||||
void /*$ra*/ RestorePermanentTPage()
|
||||
{ // line 2, address 0x87e54
|
||||
struct RECT rect; // stack address -24
|
||||
unsigned long *buffer; // stack address -16
|
||||
} // line 8, address 0x87ea0
|
||||
/*
|
||||
* Offset 0x87EB8
|
||||
* D:\driver2\game\MEMCARD\MAIN.C (line 482)
|
||||
* Stack frame base $fp, length 32
|
||||
* Saved registers at address -4: fp ra
|
||||
*/
|
||||
void /*$ra*/ PutCorrectIcon(int which /*stack 0*/)
|
||||
{ // line 2, address 0x87ecc
|
||||
unsigned char *clut; // stack address -16
|
||||
unsigned char *icon; // stack address -12
|
||||
} // line 24, address 0x87fa0
|
724
src/MEMCARD/Slot.cpp
Normal file
724
src/MEMCARD/Slot.cpp
Normal file
@ -0,0 +1,724 @@
|
||||
|
||||
/*
|
||||
* Offset 0xF3644
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 99)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ card_start__6MCSLOT(struct MCSLOT *this /*$a0*/)
|
||||
{ // line 1, address 0xf3644
|
||||
} // line 39, address 0xf3828
|
||||
/*
|
||||
* Offset 0xF3828
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 383)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
unsigned int /*$ra*/ CardRemoved__6MCSLOT(struct MCSLOT *this /*$s6*/)
|
||||
{ // line 1, address 0xf3828
|
||||
int card_status; // $v0
|
||||
{ // line 1, address 0xf3828
|
||||
struct MCSLOT *this; // $s6
|
||||
int timeout; // $s0
|
||||
{ // line 1, address 0xf3828
|
||||
{ // line 1, address 0xf387c
|
||||
{ // line 1, address 0xf387c
|
||||
} // line 1, address 0xf3890
|
||||
{ // line 1, address 0xf3890
|
||||
} // line 1, address 0xf38a4
|
||||
{ // line 1, address 0xf38a4
|
||||
} // line 1, address 0xf38b8
|
||||
{ // line 1, address 0xf38b8
|
||||
} // line 1, address 0xf38cc
|
||||
} // line 1, address 0xf38cc
|
||||
} // line 1, address 0xf38d4
|
||||
} // line 1, address 0xf38d4
|
||||
{ // line 11, address 0xf38d4
|
||||
{ // line 11, address 0xf38e4
|
||||
{ // line 11, address 0xf38e4
|
||||
struct MCSLOT *this; // $s6
|
||||
{ // line 11, address 0xf38e4
|
||||
} // line 11, address 0xf38e4
|
||||
} // line 11, address 0xf38e4
|
||||
} // line 24, address 0xf3924
|
||||
} // line 24, address 0xf3924
|
||||
{ // line 24, address 0xf3924
|
||||
struct MCSLOT *this; // $s6
|
||||
{ // line 24, address 0xf3924
|
||||
} // line 24, address 0xf3924
|
||||
} // line 24, address 0xf3924
|
||||
} // line 24, address 0xf3994
|
||||
/*
|
||||
* Offset 0xF3994
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 418)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
unsigned int /*$ra*/ CardInserted__6MCSLOT(struct MCSLOT *this /*$s6*/)
|
||||
{ // line 1, address 0xf3994
|
||||
int card_status; // $v1
|
||||
{ // line 1, address 0xf3994
|
||||
struct MCSLOT *this; // $s6
|
||||
int timeout; // $s0
|
||||
{ // line 1, address 0xf3994
|
||||
{ // line 1, address 0xf39e8
|
||||
{ // line 1, address 0xf39e8
|
||||
} // line 1, address 0xf39fc
|
||||
{ // line 1, address 0xf39fc
|
||||
} // line 1, address 0xf3a10
|
||||
{ // line 1, address 0xf3a10
|
||||
} // line 1, address 0xf3a24
|
||||
{ // line 1, address 0xf3a24
|
||||
} // line 1, address 0xf3a38
|
||||
} // line 1, address 0xf3a38
|
||||
} // line 1, address 0xf3a40
|
||||
} // line 1, address 0xf3a40
|
||||
{ // line 11, address 0xf3a40
|
||||
{ // line 12, address 0xf3a54
|
||||
{ // line 1, address 0xf3a54
|
||||
struct MCSLOT *this; // $s6
|
||||
{ // line 1, address 0xf3a54
|
||||
} // line 1, address 0xf3a54
|
||||
} // line 1, address 0xf3a54
|
||||
} // line 19, address 0xf3aa8
|
||||
} // line 19, address 0xf3aa8
|
||||
{ // line 1, address 0xf3aa8
|
||||
struct MCSLOT *this; // $s6
|
||||
{ // line 1, address 0xf3aa8
|
||||
} // line 1, address 0xf3aa8
|
||||
} // line 1, address 0xf3aa8
|
||||
} // line 24, address 0xf3b04
|
||||
/*
|
||||
* Offset 0xF3B04
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 489)
|
||||
* Stack frame base $sp, length 176
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
int /*$ra*/ FormatCard__6MCSLOT(struct MCSLOT *this /*$s2*/)
|
||||
{ // line 1, address 0xf3b04
|
||||
char buffer[128]; // stack address -160
|
||||
{ // line 1, address 0xf3b04
|
||||
struct MCSLOT *this; // $s2
|
||||
{ // line 1, address 0xf3b04
|
||||
} // line 1, address 0xf3b04
|
||||
} // line 1, address 0xf3b04
|
||||
{ // line 1, address 0xf3b04
|
||||
{ // line 1, address 0xf3b04
|
||||
struct MCSLOT *this; // $s2
|
||||
int timeout; // $s3
|
||||
{ // line 1, address 0xf3b04
|
||||
{ // line 1, address 0xf3bb4
|
||||
{ // line 1, address 0xf3bb4
|
||||
} // line 1, address 0xf3bc8
|
||||
{ // line 1, address 0xf3bc8
|
||||
} // line 1, address 0xf3bdc
|
||||
{ // line 1, address 0xf3bdc
|
||||
} // line 1, address 0xf3bf0
|
||||
{ // line 1, address 0xf3bf0
|
||||
} // line 1, address 0xf3c04
|
||||
} // line 1, address 0xf3c04
|
||||
} // line 1, address 0xf3c0c
|
||||
} // line 1, address 0xf3c0c
|
||||
} // line 15, address 0xf3c28
|
||||
} // line 20, address 0xf3c74
|
||||
/*
|
||||
* Offset 0xF3C74
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 520)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ ReadCardDir__6MCSLOT(struct MCSLOT *this /*$s3*/)
|
||||
{ // line 1, address 0xf3c74
|
||||
long length; // $a1
|
||||
char path[7]; // stack address -48
|
||||
struct DIRENTRY *entryPtr; // $s0
|
||||
{ // line 17, address 0xf3cf4
|
||||
} // line 40, address 0xf3d6c
|
||||
} // line 49, address 0xf3d8c
|
||||
/*
|
||||
* Offset 0xF3DB8
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 618)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
int /*$ra*/ ReadCardInfo__6MCSLOTPc(struct MCSLOT *this /*$s1*/, char *managerFilename /*$s0*/)
|
||||
{ // line 1, address 0xf3db8
|
||||
int i; // $a2
|
||||
int n; // $s0
|
||||
char filename[32]; // stack address -64
|
||||
int filePtr; // $s2
|
||||
{ // line 11, address 0xf3df4
|
||||
{ // line 12, address 0xf3e0c
|
||||
{ // line 13, address 0xf3e0c
|
||||
{ // line 14, address 0xf3e38
|
||||
{ // line 16, address 0xf3e38
|
||||
{ // line 21, address 0xf3e70
|
||||
} // line 24, address 0xf3eb0
|
||||
} // line 26, address 0xf3eb0
|
||||
{ // line 30, address 0xf3eb0
|
||||
{ // line 31, address 0xf3ed4
|
||||
{ // line 32, address 0xf3ed4
|
||||
{ // line 35, address 0xf3f4c
|
||||
{ // line 37, address 0xf3f4c
|
||||
} // line 37, address 0xf3f88
|
||||
} // line 54, address 0xf4060
|
||||
} // line 55, address 0xf4094
|
||||
} // line 57, address 0xf4094
|
||||
} // line 61, address 0xf40e4
|
||||
} // line 68, address 0xf4130
|
||||
} // line 68, address 0xf4130
|
||||
} // line 73, address 0xf4130
|
||||
} // line 79, address 0xf4168
|
||||
} // line 82, address 0xf41a0
|
||||
/*
|
||||
* Offset 0xF41A0
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 912)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ ReadSlice__6MCSLOTiiP5SLICEP10FILEFORMAT(struct MCSLOT *this /*$t0*/, int block /*$a1*/, int slice /*$a2*/, struct SLICE *slicePtr /*$a3*/, struct FILEFORMAT *fileFormatPtr /*stack 16*/)
|
||||
{ // line 1, address 0xf41a0
|
||||
} // line 28, address 0xf43a0
|
||||
/*
|
||||
* Offset 0xF43A0
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 950)
|
||||
* Stack frame base $sp, length 216
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ read_block__6MCSLOTiPcR9BLOCKINFO(struct MCSLOT *this /*$s1*/, int block /*$a1*/, char *bufferPtr /*$fp*/, struct BLOCKINFO *blockInfo /*$s7*/)
|
||||
{ // line 1, address 0xf43a0
|
||||
int n; // $s5
|
||||
char verifyBuffer[128]; // stack address -200
|
||||
char filename[32]; // stack address -72
|
||||
long bytesRead; // $v0
|
||||
unsigned int verifyFailed; // $v0
|
||||
int retry; // $s0
|
||||
{ // line 1, address 0xf43a0
|
||||
{ // line 12, address 0xf43e4
|
||||
} // line 39, address 0xf44a0
|
||||
} // line 39, address 0xf44a0
|
||||
{ // line 44, address 0xf44a0
|
||||
{ // line 45, address 0xf44b8
|
||||
{ // line 48, address 0xf44b8
|
||||
{ // line 48, address 0xf44c0
|
||||
{ // line 50, address 0xf44c0
|
||||
{ // line 55, address 0xf44ec
|
||||
{ // line 58, address 0xf44f4
|
||||
{ // line 61, address 0xf44f4
|
||||
{ // line 62, address 0xf44f4
|
||||
{ // line 67, address 0xf4524
|
||||
} // line 67, address 0xf4524
|
||||
} // line 67, address 0xf4524
|
||||
} // line 67, address 0xf4524
|
||||
{ // line 85, address 0xf4530
|
||||
{ // line 86, address 0xf4530
|
||||
{ // line 91, address 0xf455c
|
||||
} // line 91, address 0xf455c
|
||||
} // line 91, address 0xf455c
|
||||
} // line 91, address 0xf455c
|
||||
{ // line 106, address 0xf4564
|
||||
{ // line 109, address 0xf4584
|
||||
} // line 109, address 0xf4584
|
||||
} // line 109, address 0xf4584
|
||||
} // line 109, address 0xf4584
|
||||
} // line 121, address 0xf458c
|
||||
} // line 121, address 0xf458c
|
||||
} // line 126, address 0xf458c
|
||||
} // line 127, address 0xf45b4
|
||||
} // line 130, address 0xf45dc
|
||||
{ // line 132, address 0xf45dc
|
||||
{ // line 134, address 0xf45dc
|
||||
{ // line 142, address 0xf4608
|
||||
{ // line 143, address 0xf4608
|
||||
int check; // $a1
|
||||
} // line 146, address 0xf4640
|
||||
} // line 158, address 0xf4678
|
||||
} // line 158, address 0xf4678
|
||||
} // line 167, address 0xf46b4
|
||||
} // line 167, address 0xf46b4
|
||||
} // line 167, address 0xf46b4
|
||||
/*
|
||||
* Offset 0xF46B4
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1261)
|
||||
* Stack frame base $sp, length 216
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ write_block__6MCSLOTR9BLOCKINFOPc(struct MCSLOT *this /*$s1*/, struct BLOCKINFO *blockInfo /*$s7*/, char *bufferPtr /*$fp*/)
|
||||
{ // line 1, address 0xf46b4
|
||||
int n; // $s5
|
||||
char verifyBuffer[128]; // stack address -200
|
||||
char filename[32]; // stack address -72
|
||||
int filePtr; // $v0
|
||||
long bytes; // $v0
|
||||
unsigned int verifyFailed; // $v0
|
||||
int retry; // $s0
|
||||
{ // line 1, address 0xf46b4
|
||||
{ // line 12, address 0xf46f8
|
||||
} // line 47, address 0xf478c
|
||||
} // line 47, address 0xf478c
|
||||
{ // line 51, address 0xf478c
|
||||
{ // line 54, address 0xf47c0
|
||||
{ // line 56, address 0xf47c0
|
||||
{ // line 56, address 0xf47cc
|
||||
{ // line 58, address 0xf47cc
|
||||
{ // line 64, address 0xf4814
|
||||
{ // line 66, address 0xf481c
|
||||
{ // line 69, address 0xf481c
|
||||
{ // line 71, address 0xf481c
|
||||
{ // line 76, address 0xf484c
|
||||
} // line 76, address 0xf484c
|
||||
} // line 76, address 0xf484c
|
||||
} // line 76, address 0xf484c
|
||||
{ // line 94, address 0xf4858
|
||||
{ // line 95, address 0xf4858
|
||||
{ // line 100, address 0xf4884
|
||||
} // line 100, address 0xf4884
|
||||
} // line 100, address 0xf4884
|
||||
} // line 100, address 0xf4884
|
||||
{ // line 117, address 0xf488c
|
||||
{ // line 120, address 0xf48ac
|
||||
} // line 120, address 0xf48ac
|
||||
} // line 120, address 0xf48ac
|
||||
} // line 120, address 0xf48ac
|
||||
} // line 134, address 0xf48b4
|
||||
} // line 134, address 0xf48b4
|
||||
} // line 139, address 0xf48b4
|
||||
} // line 140, address 0xf48dc
|
||||
} // line 143, address 0xf4924
|
||||
{ // line 145, address 0xf4924
|
||||
{ // line 148, address 0xf4924
|
||||
struct MCSLOT *this; // $s1
|
||||
{ // line 148, address 0xf4924
|
||||
{ // line 148, address 0xf4924
|
||||
int n; // $a1
|
||||
} // line 150, address 0xf496c
|
||||
{ // line 1, address 0xf496c
|
||||
{ // line 1, address 0xf497c
|
||||
} // line 1, address 0xf498c
|
||||
} // line 1, address 0xf498c
|
||||
{ // line 1, address 0xf498c
|
||||
{ // line 1, address 0xf499c
|
||||
} // line 1, address 0xf49ac
|
||||
} // line 1, address 0xf49ac
|
||||
} // line 1, address 0xf49ac
|
||||
} // line 1, address 0xf49ac
|
||||
} // line 204, address 0xf49e8
|
||||
} // line 204, address 0xf49e8
|
||||
} // line 204, address 0xf49e8
|
||||
/*
|
||||
* Offset 0xF49E8
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1473)
|
||||
* Stack frame base $sp, length 704
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ CreateBlock__6MCSLOTP10FILEFORMATP5SLICE(struct MCSLOT *this /*$s5*/, struct FILEFORMAT *fileFormatPtr /*$s4*/, struct SLICE *slicePtr /*stack 8*/)
|
||||
{ // line 1, address 0xf49e8
|
||||
int i; // $a1
|
||||
int n; // $s0
|
||||
struct _CARD header; // stack address -680
|
||||
char filename[32]; // stack address -168
|
||||
int filePtr; // $s1
|
||||
int bytes; // $s3
|
||||
int blockNum; // $fp
|
||||
char charBuffer[64]; // stack address -136
|
||||
struct SLICEHEADER emptySlice; // stack address -72
|
||||
char *charPtr; // $a2
|
||||
{ // line 94, address 0xf4d98
|
||||
{ // line 97, address 0xf4db0
|
||||
} // line 104, address 0xf4ddc
|
||||
} // line 107, address 0xf4ddc
|
||||
{ // line 111, address 0xf4ddc
|
||||
{ // line 112, address 0xf4df0
|
||||
{ // line 113, address 0xf4df0
|
||||
{ // line 121, address 0xf4e28
|
||||
} // line 141, address 0xf4f28
|
||||
} // line 142, address 0xf4f4c
|
||||
} // line 147, address 0xf4f74
|
||||
} // line 147, address 0xf4f74
|
||||
{ // line 152, address 0xf4f74
|
||||
struct MCSLOT *this; // $s5
|
||||
{ // line 152, address 0xf4f74
|
||||
{ // line 152, address 0xf4f74
|
||||
int n; // $a1
|
||||
} // line 152, address 0xf4fb8
|
||||
{ // line 1, address 0xf4fb8
|
||||
{ // line 1, address 0xf4fc8
|
||||
} // line 1, address 0xf4fd8
|
||||
} // line 1, address 0xf4fd8
|
||||
{ // line 1, address 0xf4fd8
|
||||
{ // line 1, address 0xf4fe8
|
||||
} // line 1, address 0xf4ff8
|
||||
} // line 1, address 0xf4ff8
|
||||
} // line 1, address 0xf4ff8
|
||||
} // line 1, address 0xf4ff8
|
||||
} // line 157, address 0xf502c
|
||||
/*
|
||||
* Offset 0xF502C
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1640)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ DeleteBlock__6MCSLOTi(struct MCSLOT *this /*$s1*/, int block /*$a1*/)
|
||||
{ // line 1, address 0xf502c
|
||||
char filename[32]; // stack address -48
|
||||
{ // line 1, address 0xf502c
|
||||
{ // line 7, address 0xf506c
|
||||
{ // line 9, address 0xf506c
|
||||
struct MCSLOT *this; // $s1
|
||||
{ // line 9, address 0xf506c
|
||||
{ // line 9, address 0xf506c
|
||||
int n; // $a1
|
||||
} // line 11, address 0xf50cc
|
||||
{ // line 1, address 0xf50cc
|
||||
{ // line 1, address 0xf50dc
|
||||
} // line 1, address 0xf50ec
|
||||
} // line 1, address 0xf50ec
|
||||
{ // line 1, address 0xf50ec
|
||||
{ // line 1, address 0xf50fc
|
||||
} // line 1, address 0xf510c
|
||||
} // line 1, address 0xf510c
|
||||
} // line 1, address 0xf510c
|
||||
} // line 1, address 0xf510c
|
||||
} // line 26, address 0xf5114
|
||||
} // line 28, address 0xf512c
|
||||
} // line 28, address 0xf512c
|
||||
/*
|
||||
* Offset 0xF512C
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 2067)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ Ascii2ShiftJis__FPsPc(short *dest /*$a0*/, char *source /*$a1*/)
|
||||
{ // line 1, address 0xf512c
|
||||
char a; // $a2
|
||||
short scode; // $v1
|
||||
} // line 49, address 0xf523c
|
||||
/*
|
||||
* Offset 0xF523C
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 58)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
struct MCSLOT * /*$ra*/ __6MCSLOTiiiiiiPc(struct MCSLOT *this /*$s0*/, int port /*$a1*/, int card /*$a2*/, int iconX /*$a3*/, int iconY /*stack 16*/, int clutX /*stack 20*/, int clutY /*stack 24*/, char *bufferPtr /*stack 28*/)
|
||||
{ // line 1, address 0xf523c
|
||||
} // line 29, address 0xf52d8
|
||||
/*
|
||||
* Offset 0xF52F0
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 159)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ MCSLOT_ctor(struct MCSLOT *this /*$s0*/, int __in_chrg /*$s1*/)
|
||||
{ // line 1, address 0xf52f0
|
||||
} // line 11, address 0xf5324
|
||||
/*
|
||||
* Offset 0xF534C
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 193)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ card_stop__6MCSLOT(struct MCSLOT *this /*$a0*/)
|
||||
{ // line 1, address 0xf534c
|
||||
} // line 25, address 0xf5474
|
||||
/*
|
||||
* Offset 0xF5474
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 235)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ CheckCard__6MCSLOT(struct MCSLOT *this /*$s0*/)
|
||||
{ // line 1, address 0xf5474
|
||||
int card_status; // $v1
|
||||
{ // line 1, address 0xf5474
|
||||
{ // line 13, address 0xf54c0
|
||||
} // line 64, address 0xf555c
|
||||
} // line 64, address 0xf555c
|
||||
} // line 64, address 0xf555c
|
||||
/*
|
||||
* Offset 0xF555C
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 311)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ card_event__6MCSLOTi(struct MCSLOT *this /*$a0*/, int timeout /*$s0*/)
|
||||
{ // line 1, address 0xf555c
|
||||
{ // line 5, address 0xf5584
|
||||
{ // line 7, address 0xf5584
|
||||
} // line 7, address 0xf55a4
|
||||
{ // line 9, address 0xf55a4
|
||||
} // line 9, address 0xf55c0
|
||||
{ // line 11, address 0xf55c0
|
||||
} // line 11, address 0xf55d4
|
||||
{ // line 13, address 0xf55d4
|
||||
} // line 13, address 0xf55f0
|
||||
} // line 13, address 0xf55f0
|
||||
} // line 16, address 0xf5610
|
||||
/*
|
||||
* Offset 0xF5610
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 332)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ clear_event__6MCSLOT(struct MCSLOT *this /*$a0*/)
|
||||
{ // line 1, address 0xf5610
|
||||
} // line 5, address 0xf5668
|
||||
/*
|
||||
* Offset 0xF5668
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 579)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ invalidate_info__6MCSLOT(struct MCSLOT *this /*$s0*/)
|
||||
{ // line 1, address 0xf5668
|
||||
{ // line 1, address 0xf5668
|
||||
int n; // $v1
|
||||
} // line 11, address 0xf56a8
|
||||
{ // line 14, address 0xf56a8
|
||||
{ // line 15, address 0xf56b8
|
||||
} // line 17, address 0xf56c8
|
||||
} // line 17, address 0xf56c8
|
||||
{ // line 20, address 0xf56c8
|
||||
{ // line 21, address 0xf56d8
|
||||
} // line 23, address 0xf56e8
|
||||
} // line 23, address 0xf56e8
|
||||
} // line 23, address 0xf56e8
|
||||
/*
|
||||
* Offset 0xF56FC
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 712)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
void /*$ra*/ download_icon__6MCSLOTR9BLOCKINFOiiiii(struct MCSLOT *this /*$a0*/, struct BLOCKINFO *blockInfo /*$s2*/, int iconX /*$s3*/, int iconY /*$s4*/, int clutX /*stack 16*/, int clutY /*stack 20*/, int icon /*stack 24*/)
|
||||
{ // line 1, address 0xf56fc
|
||||
struct RECT rect; // stack address -32
|
||||
struct TIMSTRUCT *timPtr; // $s0
|
||||
{ // line 1, address 0xf56fc
|
||||
int n; // $a0
|
||||
} // line 22, address 0xf5790
|
||||
} // line 42, address 0xf5860
|
||||
/*
|
||||
* Offset 0xF5860
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 764)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ CopyBlock__6MCSLOTi(struct MCSLOT *this /*$a0*/, int block /*$a1*/)
|
||||
{ // line 1, address 0xf5860
|
||||
} // line 15, address 0xf5918
|
||||
/*
|
||||
* Offset 0xF5918
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1130)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ PasteBlock__6MCSLOT(struct MCSLOT *this /*$a0*/)
|
||||
{ // line 1, address 0xf5918
|
||||
} // line 7, address 0xf5968
|
||||
/*
|
||||
* Offset 0xF5968
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1146)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ ReadHeader__6MCSLOTii(struct MCSLOT *this /*$a0*/, int block /*$a1*/, int slice /*$a2*/)
|
||||
{ // line 1, address 0xf5968
|
||||
} // line 18, address 0xf5a60
|
||||
/*
|
||||
* Offset 0xF5A60
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1173)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ RenameCopyBlock__6MCSLOTP10FILEFORMAT(struct MCSLOT *this /*$a0*/, struct FILEFORMAT *fileFormatPtr /*$s1*/)
|
||||
{ // line 1, address 0xf5a60
|
||||
struct _CARD *headerptr; // $s0
|
||||
} // line 6, address 0xf5b24
|
||||
/*
|
||||
* Offset 0xF5B38
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1187)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
int /*$ra*/ WriteSlice__6MCSLOTiiP5SLICEP10FILEFORMATPc(struct MCSLOT *this /*$s0*/, int block /*$s4*/, int slice /*$s1*/, struct SLICE *slicePtr /*$a2*/, struct FILEFORMAT *fileFormatPtr /*stack 16*/, char *bufferPtr /*stack 20*/)
|
||||
{ // line 1, address 0xf5b38
|
||||
} // line 62, address 0xf5c70
|
||||
/*
|
||||
* Offset 0xF5C70
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1675)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ SetPort__6MCSLOTii(struct MCSLOT *this /*$s0*/, int port /*$a1*/, int card /*$a2*/)
|
||||
{ // line 1, address 0xf5c70
|
||||
{ // line 1, address 0xf5c70
|
||||
struct MCSLOT *this; // $s0
|
||||
{ // line 1, address 0xf5c70
|
||||
{ // line 1, address 0xf5c70
|
||||
int n; // $v1
|
||||
} // line 7, address 0xf5cdc
|
||||
{ // line 1, address 0xf5cdc
|
||||
{ // line 1, address 0xf5cec
|
||||
} // line 1, address 0xf5cfc
|
||||
} // line 1, address 0xf5cfc
|
||||
{ // line 1, address 0xf5cfc
|
||||
{ // line 1, address 0xf5d0c
|
||||
} // line 1, address 0xf5d1c
|
||||
} // line 1, address 0xf5d1c
|
||||
} // line 1, address 0xf5d1c
|
||||
} // line 1, address 0xf5d30
|
||||
} // line 9, address 0xf5d30
|
||||
/*
|
||||
* Offset 0xF5D30
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1710)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned int /*$ra*/ BlocksShared__6MCSLOTii(struct MCSLOT *this /*$t0*/, int block1 /*$a1*/, int block2 /*$a2*/)
|
||||
{ // line 1, address 0xf5d30
|
||||
} // line 9, address 0xf5dc0
|
||||
/*
|
||||
* Offset 0xF5DC8
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1723)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetBlockSize__6MCSLOTi(struct MCSLOT *this /*$a0*/, int block /*$a1*/)
|
||||
{ // line 1, address 0xf5dc8
|
||||
} // line 4, address 0xf5dfc
|
||||
/*
|
||||
* Offset 0xF5DFC
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1731)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned int /*$ra*/ CardInfoRead__6MCSLOT(struct MCSLOT *this /*$a0*/)
|
||||
{ // line 1, address 0xf5dfc
|
||||
} // line 2, address 0xf5e08
|
||||
/*
|
||||
* Offset 0xF5E08
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1755)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
struct TIMSTRUCT * /*$ra*/ GetBlockIconPtr__6MCSLOTi(struct MCSLOT *this /*$a0*/, int block /*$a1*/)
|
||||
{ // line 1, address 0xf5e08
|
||||
} // line 8, address 0xf5e84
|
||||
/*
|
||||
* Offset 0xF5E84
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1788)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetNoUsedBlocks__6MCSLOT(struct MCSLOT *this /*$a0*/)
|
||||
{ // line 1, address 0xf5e84
|
||||
} // line 6, address 0xf5ea0
|
||||
/*
|
||||
* Offset 0xF5EA0
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1806)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
short * /*$ra*/ GetBlockTitlePtr__6MCSLOTi(struct MCSLOT *this /*$a0*/, int block /*$a1*/)
|
||||
{ // line 1, address 0xf5ea0
|
||||
} // line 7, address 0xf5ee4
|
||||
/*
|
||||
* Offset 0xF5EE4
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1822)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
char * /*$ra*/ GetBlockFilenamePtr__6MCSLOTi(struct MCSLOT *this /*$a0*/, int block /*$a1*/)
|
||||
{ // line 1, address 0xf5ee4
|
||||
} // line 8, address 0xf5f1c
|
||||
/*
|
||||
* Offset 0xF5F1C
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1836)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
int /*$ra*/ FilenameUsed__6MCSLOTPc(struct MCSLOT *this /*$s3*/, char *filename /*$s4*/)
|
||||
{ // line 1, address 0xf5f1c
|
||||
int n; // $s0
|
||||
} // line 15, address 0xf5fbc
|
||||
/*
|
||||
* Offset 0xF5FBC
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1872)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
int /*$ra*/ GetNumGremBlocks__6MCSLOTPc(struct MCSLOT *this /*$s3*/, char *filename /*$s5*/)
|
||||
{ // line 1, address 0xf5fbc
|
||||
int n; // $s2
|
||||
int files; // $s4
|
||||
{ // line 7, address 0xf5ffc
|
||||
{ // line 7, address 0xf6014
|
||||
{ // line 9, address 0xf6014
|
||||
} // line 12, address 0xf6048
|
||||
} // line 12, address 0xf6048
|
||||
} // line 14, address 0xf6060
|
||||
} // line 16, address 0xf6088
|
||||
/*
|
||||
* Offset 0xF6088
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1896)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
int /*$ra*/ InsertSliceIntoCopyBuffer__6MCSLOTiPccccT2(struct MCSLOT *this /*$a0*/, int slice /*$s4*/, char *sliceName /*$a2*/, char icon0 /*$s7*/, int icon1 /*stack 16*/, int icon2 /*stack 20*/, char *dataPtr /*stack 24*/)
|
||||
{ // line 1, address 0xf6088
|
||||
struct SLICEHEADER *sliceHeaderPtr; // $s1
|
||||
char *sliceDataPtr; // $a3
|
||||
int sliceSize; // $a2
|
||||
struct SLICEHEADER dummySlice; // stack address -72
|
||||
int check; // $a1
|
||||
} // line 55, address 0xf61f0
|
||||
/*
|
||||
* Offset 0xF61F0
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1955)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ ExtractSliceFromCopyBuffer__6MCSLOTiPc(struct MCSLOT *this /*$a0*/, int slice /*$a1*/, char *bufferPtr /*$a0*/)
|
||||
{ // line 1, address 0xf61f0
|
||||
struct SLICEHEADER *sliceHeaderPtr; // $a2
|
||||
char *sliceDataPtr; // $a1
|
||||
} // line 23, address 0xf628c
|
||||
/*
|
||||
* Offset 0xF628C
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 1982)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
char * /*$ra*/ GetSliceFilenamePtr__6MCSLOTii(struct MCSLOT *this /*$a0*/, int block /*$a1*/, int slice /*$a2*/)
|
||||
{ // line 1, address 0xf628c
|
||||
} // line 15, address 0xf633c
|
||||
/*
|
||||
* Offset 0xF633C
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 2001)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned int /*$ra*/ SliceUsed__6MCSLOTii(struct MCSLOT *this /*$a0*/, int block /*$a1*/, int slice /*$a2*/)
|
||||
{ // line 1, address 0xf633c
|
||||
} // line 15, address 0xf63e4
|
||||
/*
|
||||
* Offset 0xF63EC
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 2019)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetNoUsedSlices__6MCSLOTi(struct MCSLOT *this /*$a2*/, int block /*$a1*/)
|
||||
{ // line 1, address 0xf63ec
|
||||
} // line 8, address 0xf6448
|
||||
/*
|
||||
* Offset 0xF6448
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 2030)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetSliceIconRef__6MCSLOTiii(struct MCSLOT *this /*$a0*/, int block /*$a1*/, int slice /*$a2*/, int ref /*$a3*/)
|
||||
{ // line 1, address 0xf6448
|
||||
} // line 11, address 0xf64f4
|
||||
/*
|
||||
* Offset 0xF64F4
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 2044)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetNoSlices__6MCSLOTi(struct MCSLOT *this /*$a2*/, int block /*$a1*/)
|
||||
{ // line 1, address 0xf64f4
|
||||
} // line 8, address 0xf6550
|
||||
/*
|
||||
* Offset 0xF6550
|
||||
* D:\driver2\game\MEMCARD\SLOT.CPP (line 2055)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned int /*$ra*/ GremlinBlock__6MCSLOTi(struct MCSLOT *this /*$a2*/, int block /*$a1*/)
|
||||
{ // line 1, address 0xf6550
|
||||
} // line 4, address 0xf6588
|
254
src/MEMCARD/cman.cpp
Normal file
254
src/MEMCARD/cman.cpp
Normal file
@ -0,0 +1,254 @@
|
||||
|
||||
/*
|
||||
* Offset 0x1005E0
|
||||
* D:\driver2\game\MEMCARD\CMAN.CPP (line 33)
|
||||
* Stack frame base $sp, length 51872
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ cardman__FiiPcP10FILEFORMATP5SLICET2T2(int operation /*stack 0*/, int options /*$a1*/, char *textBuffer /*$s4*/, struct FILEFORMAT *fileFormatPtr /*stack 12*/, struct SLICE *slicePtr /*stack 16*/, char *backImageName /*stack 20*/, char *bufferPtr96K /*stack 24*/)
|
||||
{ // line 1, address 0x1005e0
|
||||
struct TIMSTRUCT tempTimStruct; // stack address -51840
|
||||
struct RECT rect; // stack address -51824
|
||||
int n; // $s0
|
||||
char charBuffer[250]; // stack address -51816
|
||||
char kanjiFree[6]; // stack address -51560
|
||||
char kanjiSize[6]; // stack address -51552
|
||||
char kanjiDel[6]; // stack address -51544
|
||||
int card_process; // $s3
|
||||
int padWait; // stack address -56
|
||||
int dirCount; // $s0
|
||||
int delCount; // stack address -52
|
||||
int copyStatus; // $s0
|
||||
int pasteStatus; // $a3
|
||||
int destFree; // $s6
|
||||
int sourceSize; // $s5
|
||||
int newBlock; // $s2
|
||||
int nMessage; // $s2
|
||||
int language; // stack address -48
|
||||
short padData; // $s1
|
||||
struct PAD pad; // stack address -51536
|
||||
struct DISPMAN dispMan; // stack address -18128
|
||||
{ // line 36, address 0x10067c
|
||||
{ // line 44, address 0x1006c4
|
||||
} // line 47, address 0x100708
|
||||
} // line 47, address 0x100708
|
||||
{ // line 51, address 0x100708
|
||||
{ // line 52, address 0x100720
|
||||
struct _CARD *header; // $a1
|
||||
} // line 74, address 0x100970
|
||||
} // line 74, address 0x100970
|
||||
{ // line 124, address 0x100a14
|
||||
{ // line 142, address 0x100a14
|
||||
{ // line 148, address 0x100a58
|
||||
{ // line 149, address 0x100a58
|
||||
{ // line 150, address 0x100a68
|
||||
} // line 167, address 0x100b40
|
||||
} // line 167, address 0x100b40
|
||||
} // line 170, address 0x100b48
|
||||
} // line 170, address 0x100b48
|
||||
{ // line 174, address 0x100b48
|
||||
{ // line 183, address 0x100b64
|
||||
{ // line 184, address 0x100b64
|
||||
{ // line 185, address 0x100b74
|
||||
{ // line 186, address 0x100b74
|
||||
{ // line 190, address 0x100b94
|
||||
} // line 273, address 0x100d8c
|
||||
{ // line 278, address 0x100d9c
|
||||
} // line 293, address 0x100e08
|
||||
} // line 293, address 0x100e08
|
||||
} // line 293, address 0x100e08
|
||||
} // line 293, address 0x100e08
|
||||
} // line 293, address 0x100e08
|
||||
} // line 293, address 0x100e08
|
||||
{ // line 301, address 0x100e08
|
||||
{ // line 302, address 0x100e30
|
||||
} // line 317, address 0x100e94
|
||||
} // line 317, address 0x100e94
|
||||
{ // line 321, address 0x100e94
|
||||
{ // line 322, address 0x100ebc
|
||||
{ // line 325, address 0x100ebc
|
||||
{ // line 326, address 0x100ecc
|
||||
{ // line 327, address 0x100ecc
|
||||
} // line 327, address 0x100ecc
|
||||
} // line 333, address 0x100ef4
|
||||
} // line 333, address 0x100ef4
|
||||
{ // line 391, address 0x10108c
|
||||
} // line 391, address 0x10108c
|
||||
{ // line 437, address 0x1011a8
|
||||
} // line 437, address 0x1011a8
|
||||
{ // line 445, address 0x1011b0
|
||||
{ // line 446, address 0x1011d8
|
||||
{ // line 466, address 0x10126c
|
||||
} // line 466, address 0x10126c
|
||||
{ // line 489, address 0x101354
|
||||
} // line 489, address 0x101354
|
||||
{ // line 499, address 0x101364
|
||||
} // line 499, address 0x101364
|
||||
} // line 499, address 0x101364
|
||||
} // line 499, address 0x101364
|
||||
{ // line 499, address 0x101364
|
||||
} // line 499, address 0x101364
|
||||
{ // line 532, address 0x101448
|
||||
} // line 532, address 0x101448
|
||||
{ // line 540, address 0x101460
|
||||
{ // line 541, address 0x1014a4
|
||||
{ // line 542, address 0x1014a4
|
||||
} // line 542, address 0x1014a4
|
||||
} // line 544, address 0x1014b8
|
||||
} // line 544, address 0x1014b8
|
||||
{ // line 547, address 0x1014b8
|
||||
{ // line 551, address 0x101500
|
||||
{ // line 552, address 0x101500
|
||||
} // line 552, address 0x101500
|
||||
} // line 556, address 0x101548
|
||||
} // line 556, address 0x101548
|
||||
{ // line 560, address 0x101548
|
||||
{ // line 563, address 0x101580
|
||||
{ // line 564, address 0x101580
|
||||
} // line 564, address 0x101580
|
||||
} // line 566, address 0x101590
|
||||
} // line 566, address 0x101590
|
||||
{ // line 579, address 0x101650
|
||||
{ // line 580, address 0x101658
|
||||
{ // line 581, address 0x101658
|
||||
} // line 581, address 0x101658
|
||||
} // line 583, address 0x101670
|
||||
} // line 583, address 0x101670
|
||||
{ // line 594, address 0x101714
|
||||
{ // line 595, address 0x10171c
|
||||
{ // line 596, address 0x10171c
|
||||
} // line 596, address 0x10171c
|
||||
} // line 598, address 0x101734
|
||||
} // line 598, address 0x101734
|
||||
{ // line 601, address 0x101734
|
||||
} // line 601, address 0x101734
|
||||
{ // line 611, address 0x10177c
|
||||
{ // line 615, address 0x1017b0
|
||||
{ // line 675, address 0x1019c8
|
||||
} // line 675, address 0x1019c8
|
||||
} // line 678, address 0x1019f4
|
||||
} // line 678, address 0x1019f4
|
||||
{ // line 681, address 0x1019f4
|
||||
{ // line 682, address 0x101a14
|
||||
{ // line 707, address 0x101afc
|
||||
{ // line 711, address 0x101b1c
|
||||
{ // line 712, address 0x101b1c
|
||||
} // line 712, address 0x101b1c
|
||||
} // line 714, address 0x101b30
|
||||
} // line 714, address 0x101b30
|
||||
} // line 717, address 0x101b30
|
||||
} // line 732, address 0x101b4c
|
||||
{ // line 732, address 0x101b4c
|
||||
} // line 732, address 0x101b4c
|
||||
{ // line 738, address 0x101b4c
|
||||
{ // line 742, address 0x101b8c
|
||||
{ // line 743, address 0x101b8c
|
||||
{ // line 749, address 0x101bc0
|
||||
{ // line 753, address 0x101c04
|
||||
} // line 753, address 0x101c04
|
||||
} // line 754, address 0x101c0c
|
||||
{ // line 758, address 0x101c0c
|
||||
{ // line 764, address 0x101c50
|
||||
{ // line 768, address 0x101cb4
|
||||
{ // line 770, address 0x101cec
|
||||
} // line 770, address 0x101cec
|
||||
} // line 771, address 0x101cf4
|
||||
} // line 771, address 0x101cf4
|
||||
} // line 771, address 0x101cf4
|
||||
} // line 771, address 0x101cf4
|
||||
} // line 771, address 0x101cf4
|
||||
} // line 771, address 0x101cf4
|
||||
{ // line 804, address 0x101d38
|
||||
{ // line 805, address 0x101d40
|
||||
{ // line 808, address 0x101d40
|
||||
} // line 808, address 0x101d40
|
||||
} // line 810, address 0x101d58
|
||||
} // line 810, address 0x101d58
|
||||
{ // line 839, address 0x101e94
|
||||
{ // line 840, address 0x101e9c
|
||||
{ // line 841, address 0x101e9c
|
||||
} // line 841, address 0x101e9c
|
||||
} // line 843, address 0x101eb4
|
||||
} // line 843, address 0x101eb4
|
||||
{ // line 867, address 0x101f98
|
||||
} // line 867, address 0x101f98
|
||||
{ // line 874, address 0x101fb0
|
||||
} // line 874, address 0x101fb0
|
||||
{ // line 898, address 0x102104
|
||||
{ // line 899, address 0x10210c
|
||||
{ // line 904, address 0x10210c
|
||||
} // line 904, address 0x10210c
|
||||
} // line 907, address 0x102124
|
||||
{ // line 910, address 0x102124
|
||||
{ // line 910, address 0x102124
|
||||
{ // line 911, address 0x10212c
|
||||
{ // line 913, address 0x10212c
|
||||
} // line 913, address 0x10212c
|
||||
} // line 916, address 0x102150
|
||||
} // line 922, address 0x102150
|
||||
} // line 922, address 0x102150
|
||||
} // line 922, address 0x102150
|
||||
{ // line 922, address 0x102150
|
||||
} // line 922, address 0x102150
|
||||
{ // line 937, address 0x1021b0
|
||||
{ // line 938, address 0x1021b0
|
||||
{ // line 940, address 0x1021b0
|
||||
{ // line 941, address 0x1021d8
|
||||
{ // line 943, address 0x1021d8
|
||||
} // line 943, address 0x1021d8
|
||||
{ // line 948, address 0x10220c
|
||||
} // line 948, address 0x10220c
|
||||
} // line 948, address 0x10220c
|
||||
} // line 948, address 0x10220c
|
||||
} // line 964, address 0x1022a8
|
||||
} // line 964, address 0x1022a8
|
||||
{ // line 967, address 0x1022a8
|
||||
} // line 967, address 0x1022a8
|
||||
} // line 967, address 0x1022a8
|
||||
} // line 967, address 0x1022a8
|
||||
} // line 980, address 0x1022ec
|
||||
{ // line 997, address 0x102304
|
||||
} // line 997, address 0x102304
|
||||
} // line 997, address 0x102364
|
||||
/*
|
||||
* Offset 0x102364
|
||||
* D:\driver2\game\MEMCARD\CMAN.CPP (line 1065)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ EnterName__FP3PADP7DISPMANPc(struct PAD *pad /*$fp*/, struct DISPMAN *disp /*stack 4*/, char *username /*stack 8*/)
|
||||
{ // line 1, address 0x102364
|
||||
char asciiname[20]; // stack address -72
|
||||
int ret; // stack address -48
|
||||
short padData; // $s5
|
||||
short prevData; // $s7
|
||||
int so; // $s2
|
||||
int co; // $s6
|
||||
int delay; // $s3
|
||||
char c; // $s1
|
||||
char toggle; // stack address -44
|
||||
} // line 157, address 0x102710
|
||||
/*
|
||||
* Offset 0x102710
|
||||
* D:\driver2\game\MEMCARD\CMAN.CPP (line 24)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ card_manager(int operation /*$a0*/, int options /*$a1*/, char *textBuffer /*$a2*/, struct FILEFORMAT *fileFormatPtr /*$a3*/, struct SLICE *slicePtr /*stack 16*/, char *backImageName /*stack 20*/, char *bufferPtr96K /*stack 24*/)
|
||||
{ // line 1, address 0x102710
|
||||
} // line 6, address 0x102744
|
||||
/*
|
||||
* Offset 0x102744
|
||||
* D:\driver2\game\MEMCARD\CMAN.CPP (line 1034)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ LoadBackground__FPcT0(char *filename /*$s5*/, char *buffer /*$s2*/)
|
||||
{ // line 1, address 0x102744
|
||||
struct RECT rect; // stack address -40
|
||||
int i; // $s0
|
||||
{ // line 1, address 0x102744
|
||||
{ // line 5, address 0x10277c
|
||||
} // line 8, address 0x10277c
|
||||
} // line 12, address 0x1027e8
|
||||
} // line 12, address 0x1027e8
|
10
src/MEMCARD/delete.c
Normal file
10
src/MEMCARD/delete.c
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
/*
|
||||
* Offset 0xF6588
|
||||
* D:\driver2\game\MEMCARD\DELETE.C (line 10)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
long /*$ra*/ delete_file(char *filename /*$a0*/)
|
||||
{ // line 5, address 0xf6588
|
||||
} // line 7, address 0xf65a8
|
887
src/MEMCARD/display.cpp
Normal file
887
src/MEMCARD/display.cpp
Normal file
@ -0,0 +1,887 @@
|
||||
|
||||
/*
|
||||
* Offset 0xF65A8
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 49)
|
||||
* Stack frame base $sp, length 152
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
struct DISPMAN * /*$ra*/ __7DISPMANPlPPlP3PADP10FILEFORMATib(struct DISPMAN *this /*$s2*/, long *imagePtr /*$a1*/, long **sliceIconPtrs /*stack 8*/, struct PAD *pad /*$a3*/, struct FILEFORMAT *fileFormatPtr /*stack 16*/, int language /*stack 20*/, unsigned int save /*stack 24*/)
|
||||
{ // line 1, address 0xf65a8
|
||||
int n; // $s1
|
||||
struct RECT rect; // stack address -112
|
||||
} // line 340, address 0xf727c
|
||||
/*
|
||||
* Offset 0xF72B8
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 472)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DrawTitleBar__7DISPMAN(struct DISPMAN *this /*$s3*/)
|
||||
{ // line 1, address 0xf72b8
|
||||
char *titleText; // $s2
|
||||
{ // line 1, address 0xf72b8
|
||||
{ // line 6, address 0xf72e4
|
||||
{ // line 56, address 0xf740c
|
||||
{ // line 58, address 0xf742c
|
||||
char *titleText2; // $s0
|
||||
int i; // $t0
|
||||
} // line 72, address 0xf7454
|
||||
} // line 76, address 0xf74e8
|
||||
} // line 79, address 0xf74ec
|
||||
} // line 79, address 0xf74ec
|
||||
} // line 79, address 0xf74ec
|
||||
/*
|
||||
* Offset 0xF7508
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 555)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ DrawCards__7DISPMAN(struct DISPMAN *this /*$s0*/)
|
||||
{ // line 1, address 0xf7508
|
||||
} // line 35, address 0xf7670
|
||||
/*
|
||||
* Offset 0xF7688
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 602)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DrawMenu__7DISPMAN(struct DISPMAN *this /*$s0*/)
|
||||
{ // line 1, address 0xf7688
|
||||
} // line 92, address 0xf79ac
|
||||
/*
|
||||
* Offset 0xF79C8
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 701)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DrawKeyInfo__7DISPMAN(struct DISPMAN *this /*$s3*/)
|
||||
{ // line 1, address 0xf79c8
|
||||
} // line 41, address 0xf7c30
|
||||
/*
|
||||
* Offset 0xF7C4C
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 747)
|
||||
* Stack frame base $sp, length 96
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawBlocks__7DISPMAN(struct DISPMAN *this /*$s1*/)
|
||||
{ // line 1, address 0xf7c4c
|
||||
int x; // $s6
|
||||
int y; // $s2
|
||||
} // line 87, address 0xf816c
|
||||
/*
|
||||
* Offset 0xF819C
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 839)
|
||||
* Stack frame base $sp, length 144
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ DrawSlices__7DISPMAN(struct DISPMAN *this /*$s2*/)
|
||||
{ // line 1, address 0xf819c
|
||||
int n; // $s3
|
||||
char textBuffer[50]; // stack address -104
|
||||
int iconRef; // $v1
|
||||
int maxIcons; // $s1
|
||||
{ // line 29, address 0xf82bc
|
||||
{ // line 30, address 0xf82cc
|
||||
{ // line 31, address 0xf82cc
|
||||
{ // line 35, address 0xf8304
|
||||
{ // line 38, address 0xf8304
|
||||
{ // line 48, address 0xf83bc
|
||||
{ // line 48, address 0xf83bc
|
||||
{ // line 57, address 0xf8404
|
||||
{ // line 57, address 0xf8404
|
||||
{ // line 57, address 0xf841c
|
||||
{ // line 59, address 0xf841c
|
||||
{ // line 59, address 0xf8460
|
||||
{ // line 61, address 0xf8460
|
||||
{ // line 63, address 0xf847c
|
||||
{ // line 64, address 0xf847c
|
||||
{ // line 65, address 0xf8484
|
||||
{ // line 66, address 0xf8484
|
||||
{ // line 67, address 0xf84a8
|
||||
} // line 68, address 0xf84a8
|
||||
} // line 80, address 0xf8574
|
||||
} // line 80, address 0xf8574
|
||||
} // line 116, address 0xf8770
|
||||
} // line 116, address 0xf8770
|
||||
} // line 116, address 0xf8770
|
||||
} // line 116, address 0xf8770
|
||||
} // line 122, address 0xf8784
|
||||
} // line 122, address 0xf8784
|
||||
} // line 122, address 0xf8784
|
||||
} // line 122, address 0xf8784
|
||||
} // line 122, address 0xf8784
|
||||
} // line 122, address 0xf8784
|
||||
} // line 122, address 0xf8784
|
||||
} // line 122, address 0xf8784
|
||||
} // line 122, address 0xf8784
|
||||
} // line 136, address 0xf87d4
|
||||
} // line 183, address 0xf8ae8
|
||||
} // line 189, address 0xf8b28
|
||||
/*
|
||||
* Offset 0xF8B28
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1031)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ write_mess_in_box__7DISPMANG4RECTPciiii(struct DISPMAN *this /*$s5*/, struct RECT box /*stack 4*/, char *text /*$fp*/, int font /*stack 16*/, int r /*stack 20*/, int g /*stack 24*/, int b /*stack 28*/)
|
||||
{ // line 1, address 0xf8b28
|
||||
int n; // $s1
|
||||
int textY; // $s2
|
||||
int messCount; // $s6
|
||||
int lineCount; // $s0
|
||||
} // line 25, address 0xf8d24
|
||||
/*
|
||||
* Offset 0xF8D24
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1060)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DrawBlockName__7DISPMAN(struct DISPMAN *this /*$s0*/)
|
||||
{ // line 1, address 0xf8d24
|
||||
} // line 40, address 0xf8ed4
|
||||
/*
|
||||
* Offset 0xF8EE4
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1327)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ ActiveAreaLeft__7DISPMAN(struct DISPMAN *this /*$s0*/)
|
||||
{ // line 1, address 0xf8ee4
|
||||
int start; // $s1
|
||||
} // line 43, address 0xf9018
|
||||
/*
|
||||
* Offset 0xF902C
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1375)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ ActiveAreaRight__7DISPMAN(struct DISPMAN *this /*$s1*/)
|
||||
{ // line 1, address 0xf902c
|
||||
int start; // $s2
|
||||
} // line 57, address 0xf9258
|
||||
/*
|
||||
* Offset 0xF9270
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1437)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ ActiveAreaUp__7DISPMAN(struct DISPMAN *this /*$s0*/)
|
||||
{ // line 1, address 0xf9270
|
||||
} // line 51, address 0xf940c
|
||||
/*
|
||||
* Offset 0xF941C
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1493)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ ActiveAreaDown__7DISPMAN(struct DISPMAN *this /*$s0*/)
|
||||
{ // line 1, address 0xf941c
|
||||
int start; // $s1
|
||||
} // line 71, address 0xf96dc
|
||||
/*
|
||||
* Offset 0xF96F0
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1568)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ ActiveAreaSelect__7DISPMANii(struct DISPMAN *this /*$s1*/, int x /*$s2*/, int y /*$s0*/)
|
||||
{ // line 1, address 0xf96f0
|
||||
int selected; // $s0
|
||||
int newArea; // $a0
|
||||
} // line 138, address 0xf9bac
|
||||
/*
|
||||
* Offset 0xF9BAC
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1728)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
int /*$ra*/ ActiveAreaConfirm__7DISPMAN(struct DISPMAN *this /*$s1*/)
|
||||
{ // line 1, address 0xf9bac
|
||||
} // line 230, address 0xf9fac
|
||||
/*
|
||||
* Offset 0xF9FAC
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2044)
|
||||
* Stack frame base $sp, length 40
|
||||
*/
|
||||
unsigned int /*$ra*/ intersect__7DISPMANG4RECTT1(struct DISPMAN *this /*$a0*/, struct RECT rect1 /*stack 4*/, struct RECT rect2 /*stack 12*/)
|
||||
{ // line 1, address 0xf9fac
|
||||
int n; // $t0
|
||||
struct POINT p[4]; // stack address -40
|
||||
char bitPattern[2]; // stack address -8
|
||||
} // line 34, address 0xfa174
|
||||
/*
|
||||
* Offset 0xFA174
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2139)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 ra
|
||||
*/
|
||||
unsigned int /*$ra*/ Update__7DISPMAN(struct DISPMAN *this /*$s1*/)
|
||||
{ // line 1, address 0xfa174
|
||||
int n; // $s0
|
||||
struct RECT rect; // stack address -32
|
||||
{ // line 28, address 0xfa238
|
||||
{ // line 29, address 0xfa260
|
||||
{ // line 1, address 0xfa260
|
||||
struct DISPMAN *this; // $s1
|
||||
{ // line 1, address 0xfa260
|
||||
int i; // $a0
|
||||
} // line 1, address 0xfa2a4
|
||||
} // line 1, address 0xfa2a4
|
||||
{ // line 1, address 0xfa2a4
|
||||
struct DISPMAN *this; // $s1
|
||||
{ // line 1, address 0xfa2a4
|
||||
int i; // $a0
|
||||
} // line 1, address 0xfa2ec
|
||||
} // line 1, address 0xfa2ec
|
||||
{ // line 1, address 0xfa2ec
|
||||
struct DISPMAN *this; // $s1
|
||||
{ // line 1, address 0xfa2ec
|
||||
int i; // $a0
|
||||
} // line 1, address 0xfa334
|
||||
} // line 1, address 0xfa334
|
||||
{ // line 1, address 0xfa334
|
||||
struct DISPMAN *this; // $s1
|
||||
{ // line 1, address 0xfa334
|
||||
int i; // $a0
|
||||
} // line 1, address 0xfa37c
|
||||
} // line 1, address 0xfa37c
|
||||
{ // line 1, address 0xfa37c
|
||||
struct DISPMAN *this; // $s1
|
||||
{ // line 1, address 0xfa37c
|
||||
} // line 1, address 0xfa39c
|
||||
} // line 1, address 0xfa39c
|
||||
} // line 38, address 0xfa39c
|
||||
} // line 38, address 0xfa39c
|
||||
{ // line 49, address 0xfa3d8
|
||||
{ // line 52, address 0xfa3e8
|
||||
{ // line 53, address 0xfa3e8
|
||||
{ // line 53, address 0xfa3ec
|
||||
{ // line 1, address 0xfa3ec
|
||||
struct DISPMAN *this; // $s1
|
||||
int n; // $s0
|
||||
{ // line 1, address 0xfa3ec
|
||||
} // line 1, address 0xfa47c
|
||||
} // line 1, address 0xfa47c
|
||||
} // line 53, address 0xfa47c
|
||||
} // line 53, address 0xfa488
|
||||
} // line 53, address 0xfa488
|
||||
} // line 53, address 0xfa488
|
||||
} // line 127, address 0xfa684
|
||||
/*
|
||||
* Offset 0xFA684
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2271)
|
||||
* Stack frame base $sp, length 352
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ PrintKanji__7DISPMANPsiiiiii(struct DISPMAN *this /*$s1*/, short *string /*$s0*/, int x /*$s4*/, int y /*$fp*/, int maxChars /*stack 16*/, int r /*stack 20*/, int g /*stack 24*/, int b /*stack 28*/)
|
||||
{ // line 1, address 0xfa684
|
||||
char textBuffer[256]; // stack address -312
|
||||
int lookup; // $a1
|
||||
int n; // stack address -48
|
||||
short *sjisPtr; // $s0
|
||||
short sjisCode[3]; // stack address -56
|
||||
int chars; // $v1
|
||||
} // line 79, address 0xfa97c
|
||||
/*
|
||||
* Offset 0xFA97C
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2402)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ darken__7DISPMANG4RECT(struct DISPMAN *this /*$s0*/, struct RECT rect /*stack 4*/)
|
||||
{ // line 1, address 0xfa97c
|
||||
} // line 31, address 0xfacc4
|
||||
/*
|
||||
* Offset 0xFACD4
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2670)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
int /*$ra*/ DrawSprite__7DISPMANP9TIMSTRUCTiiiiii(struct DISPMAN *this /*$s0*/, struct TIMSTRUCT *tim /*$s1*/, int x /*$s2*/, int y /*$s3*/, int r /*stack 16*/, int g /*stack 20*/, int b /*stack 24*/, int trans /*stack 28*/)
|
||||
{ // line 1, address 0xfacd4
|
||||
} // line 25, address 0xfaed0
|
||||
/*
|
||||
* Offset 0xFAED0
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2743)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ AddCircleG16__7DISPMANiiiiiiii(struct DISPMAN *this /*$s0*/, int x /*stack 4*/, int y /*stack 8*/, int diameter /*$a3*/, int complete /*stack 16*/, int r /*stack 20*/, int g /*stack 24*/, int b /*stack 28*/, int divisor /*stack 32*/)
|
||||
{ // line 1, address 0xfaed0
|
||||
int modX; // $s6
|
||||
int modY; // $s5
|
||||
{ // line 10, address 0xfaf54
|
||||
int n; // $s3
|
||||
} // line 31, address 0xfb304
|
||||
} // line 31, address 0xfb304
|
||||
/*
|
||||
* Offset 0xFB304
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2786)
|
||||
* Stack frame base $sp, length 344
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
short /*$ra*/ MessageBox__7DISPMANiPcbT3(struct DISPMAN *this /*$s5*/, int type /*stack 4*/, char *text /*stack 8*/, unsigned int bIgnoreEvents /*stack 12*/, unsigned int bSwapKeys /*stack 16*/)
|
||||
{ // line 1, address 0xfb304
|
||||
int boxHeight; // $s6
|
||||
int boxTop; // stack address -72
|
||||
int maxTextLen; // stack address -68
|
||||
int textLen; // $s0
|
||||
int textY; // $s3
|
||||
int lineCount; // $s1
|
||||
struct RECT darkRect; // stack address -304
|
||||
struct RECT rect; // stack address -296
|
||||
char textBuffer[128]; // stack address -288
|
||||
int sel; // $fp
|
||||
unsigned int cardState; // stack address -64
|
||||
unsigned int bInBox; // $s4
|
||||
int n; // $s2
|
||||
int messCount; // $s7
|
||||
short padData; // $s4
|
||||
{ // line 102, address 0xfb79c
|
||||
struct DISPMAN *this; // $s5
|
||||
struct RECT rect; // stack address -148
|
||||
{ // line 102, address 0xfb79c
|
||||
int n; // $s2
|
||||
} // line 113, address 0xfb8d0
|
||||
} // line 113, address 0xfb8d0
|
||||
{ // line 117, address 0xfb8d0
|
||||
{ // line 120, address 0xfb8fc
|
||||
{ // line 124, address 0xfb954
|
||||
{ // line 127, address 0xfb984
|
||||
{ // line 129, address 0xfb9a8
|
||||
struct DISPMAN *this; // $s5
|
||||
int y; // $s3
|
||||
{ // line 129, address 0xfb9a8
|
||||
struct LINE_F2 strF2; // stack address -88
|
||||
struct LINE_F4 strF4; // stack address -120
|
||||
} // line 129, address 0xfb9a8
|
||||
} // line 129, address 0xfb9a8
|
||||
{ // line 130, address 0xfba68
|
||||
struct DISPMAN *this; // $s5
|
||||
int y; // $s3
|
||||
{ // line 130, address 0xfba68
|
||||
struct LINE_F2 strF2; // stack address -128
|
||||
struct LINE_F4 strF4; // stack address -160
|
||||
} // line 130, address 0xfba68
|
||||
} // line 130, address 0xfba68
|
||||
{ // line 133, address 0xfbb2c
|
||||
struct DISPMAN *this; // $s5
|
||||
int y; // $s3
|
||||
{ // line 133, address 0xfbb2c
|
||||
struct LINE_F2 strF2; // stack address -128
|
||||
struct LINE_F4 strF4; // stack address -160
|
||||
} // line 133, address 0xfbbc8
|
||||
} // line 133, address 0xfbbc8
|
||||
} // line 136, address 0xfbbc8
|
||||
} // line 136, address 0xfbbc8
|
||||
{ // line 141, address 0xfbc34
|
||||
{ // line 176, address 0xfbd50
|
||||
{ // line 179, address 0xfbd80
|
||||
{ // line 1, address 0xfbdd4
|
||||
struct DISPMAN *this; // $s5
|
||||
int y; // $s3
|
||||
int r; // $s2
|
||||
int g; // $s1
|
||||
int b; // $s0
|
||||
{ // line 1, address 0xfbdd4
|
||||
struct LINE_F2 strF2; // stack address -128
|
||||
struct LINE_F4 strF4; // stack address -160
|
||||
} // line 1, address 0xfbdd4
|
||||
} // line 1, address 0xfbdd4
|
||||
{ // line 1, address 0xfbefc
|
||||
struct DISPMAN *this; // $s5
|
||||
int y; // $s3
|
||||
int r; // $s2
|
||||
int g; // $s1
|
||||
int b; // $s0
|
||||
{ // line 1, address 0xfbefc
|
||||
struct LINE_F2 strF2; // stack address -128
|
||||
struct LINE_F4 strF4; // stack address -160
|
||||
} // line 1, address 0xfbefc
|
||||
} // line 1, address 0xfbefc
|
||||
{ // line 188, address 0xfc01c
|
||||
struct DISPMAN *this; // $s5
|
||||
int y; // $s3
|
||||
int r; // $s1
|
||||
{ // line 188, address 0xfc01c
|
||||
struct LINE_F2 strF2; // stack address -128
|
||||
struct LINE_F4 strF4; // stack address -160
|
||||
} // line 188, address 0xfc0cc
|
||||
} // line 188, address 0xfc0cc
|
||||
} // line 191, address 0xfc0cc
|
||||
} // line 191, address 0xfc0cc
|
||||
} // line 207, address 0xfc138
|
||||
} // line 233, address 0xfc278
|
||||
{ // line 236, address 0xfc280
|
||||
{ // line 240, address 0xfc2b0
|
||||
{ // line 241, address 0xfc2f0
|
||||
{ // line 244, address 0xfc2fc
|
||||
{ // line 1, address 0xfc390
|
||||
struct DISPMAN *this; // $s5
|
||||
int y; // $s3
|
||||
{ // line 1, address 0xfc390
|
||||
struct LINE_F2 strF2; // stack address -128
|
||||
struct LINE_F4 strF4; // stack address -160
|
||||
} // line 1, address 0xfc390
|
||||
} // line 1, address 0xfc390
|
||||
{ // line 1, address 0xfc474
|
||||
struct DISPMAN *this; // $s5
|
||||
int y; // $s3
|
||||
{ // line 1, address 0xfc474
|
||||
struct LINE_F2 strF2; // stack address -128
|
||||
struct LINE_F4 strF4; // stack address -160
|
||||
} // line 1, address 0xfc474
|
||||
} // line 1, address 0xfc474
|
||||
} // line 266, address 0xfc540
|
||||
{ // line 283, address 0xfc650
|
||||
struct DISPMAN *this; // $s5
|
||||
int y; // $s3
|
||||
int w; // $v0
|
||||
{ // line 283, address 0xfc650
|
||||
struct LINE_F2 strF2; // stack address -128
|
||||
struct LINE_F4 strF4; // stack address -160
|
||||
} // line 283, address 0xfc650
|
||||
} // line 283, address 0xfc650
|
||||
{ // line 308, address 0xfc848
|
||||
struct DISPMAN *this; // $s5
|
||||
int y; // $s3
|
||||
int w; // $v0
|
||||
{ // line 308, address 0xfc848
|
||||
struct LINE_F2 strF2; // stack address -128
|
||||
struct LINE_F4 strF4; // stack address -160
|
||||
} // line 308, address 0xfc8e8
|
||||
} // line 308, address 0xfc8e8
|
||||
} // line 313, address 0xfc8f0
|
||||
} // line 313, address 0xfc8f0
|
||||
} // line 313, address 0xfc8f0
|
||||
} // line 313, address 0xfc8f0
|
||||
} // line 321, address 0xfc950
|
||||
/*
|
||||
* Offset 0xFC950
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 3112)
|
||||
* Stack frame base $sp, length 232
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
struct RECT /*$ra*/ ProgressBox__7DISPMANPci(struct DISPMAN *this /*$s3*/, char *text /*$fp*/, int progress /*stack 12*/)
|
||||
{ // line 1, address 0xfc950
|
||||
int boxHeight; // $s4
|
||||
int boxTop; // stack address -48
|
||||
int maxTextLen; // $s7
|
||||
int textLen; // $v1
|
||||
int textY; // $s1
|
||||
int lineCount; // $s0
|
||||
struct RECT darkRect; // stack address -192
|
||||
char textBuffer[128]; // stack address -184
|
||||
int n; // $s2
|
||||
int messCount; // $s6
|
||||
} // line 39, address 0xfcb08
|
||||
/*
|
||||
* Offset 0xFCC54
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 3182)
|
||||
* Stack frame base $sp, length 312
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
int /*$ra*/ message_width__7DISPMANPcii(struct DISPMAN *this /*$s3*/, char *mesPtr /*$s1*/, int font /*$a2*/, int maxChars /*$s6*/)
|
||||
{ // line 1, address 0xfcc54
|
||||
char c; // $a1
|
||||
int fRef; // $s0
|
||||
int w; // $s2
|
||||
int n; // $s5
|
||||
{ // line 1, address 0xfcc54
|
||||
{ // line 7, address 0xfcc98
|
||||
{ // line 1, address 0xfcc98
|
||||
short *kanjiStringPtr; // $s1
|
||||
int maxChars; // $s6
|
||||
{ // line 1, address 0xfcc98
|
||||
int totalLen; // $a1
|
||||
short textBuffer[128]; // stack address -296
|
||||
} // line 1, address 0xfcd04
|
||||
} // line 1, address 0xfcd04
|
||||
} // line 8, address 0xfcd0c
|
||||
} // line 27, address 0xfce00
|
||||
} // line 27, address 0xfce00
|
||||
/*
|
||||
* Offset 0xFCE00
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 3214)
|
||||
* Stack frame base $sp, length 184
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ justify_mess__7DISPMANPcii(struct DISPMAN *this /*$fp*/, char *messPtr /*$s3*/, int font /*stack 8*/, int maxLineLength /*$s7*/)
|
||||
{ // line 1, address 0xfce00
|
||||
char c; // $s0
|
||||
short kanji; // $s0
|
||||
char word[128]; // stack address -168
|
||||
int wordCount; // $s1
|
||||
int lineLength; // $s6
|
||||
int lineCount; // $s4
|
||||
} // line 117, address 0xfd000
|
||||
/*
|
||||
* Offset 0xFD000
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 3337)
|
||||
* Stack frame base $sp, length 88
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ write_mess__7DISPMANPciiiiiiii(struct DISPMAN *this /*$s2*/, char *mesPtr /*$s6*/, int x /*$s3*/, int y /*stack 12*/, int font /*stack 16*/, int maxChars /*stack 20*/, int r /*stack 24*/, int g /*stack 28*/, int b /*stack 32*/, int trans /*stack 36*/)
|
||||
{ // line 1, address 0xfd000
|
||||
int fRef; // $s1
|
||||
int n; // stack address -56
|
||||
char c; // $s0
|
||||
{ // line 1, address 0xfd000
|
||||
{ // line 9, address 0xfd080
|
||||
{ // line 11, address 0xfd0f4
|
||||
{ // line 20, address 0xfd124
|
||||
{ // line 21, address 0xfd134
|
||||
{ // line 22, address 0xfd134
|
||||
struct DISPMAN *this; // $s2
|
||||
struct TIMSTRUCT *tim; // $a3
|
||||
int y; // stack address 12
|
||||
int r; // $t1
|
||||
int g; // $t0
|
||||
int b; // $a3
|
||||
int trans; // $v0
|
||||
{ // line 22, address 0xfd134
|
||||
struct DR_TPAGE *tpagePtr; // $a2
|
||||
struct SPRT *spritePtr; // $a1
|
||||
} // line 29, address 0xfd27c
|
||||
} // line 29, address 0xfd27c
|
||||
} // line 29, address 0xfd27c
|
||||
} // line 29, address 0xfd27c
|
||||
{ // line 39, address 0xfd2a4
|
||||
{ // line 40, address 0xfd2b0
|
||||
{ // line 1, address 0xfd2b0
|
||||
struct DISPMAN *this; // $s2
|
||||
struct TIMSTRUCT *tim; // $a3
|
||||
int x; // $s3
|
||||
int y; // stack address 12
|
||||
int r; // $t1
|
||||
int g; // $t0
|
||||
int b; // $a3
|
||||
int trans; // $v0
|
||||
{ // line 1, address 0xfd2b0
|
||||
struct DR_TPAGE *tpagePtr; // $a2
|
||||
struct SPRT *spritePtr; // $a1
|
||||
} // line 1, address 0xfd2b0
|
||||
} // line 1, address 0xfd2b0
|
||||
} // line 44, address 0xfd3a4
|
||||
} // line 44, address 0xfd3a4
|
||||
} // line 44, address 0xfd3a4
|
||||
} // line 49, address 0xfd410
|
||||
} // line 49, address 0xfd410
|
||||
} // line 49, address 0xfd410
|
||||
/*
|
||||
* Offset 0xFD410
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 3392)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ font_ref__7DISPMANcb(struct DISPMAN *this /*$a0*/, char c /*$a1*/, unsigned int accent /*$a2*/)
|
||||
{ // line 1, address 0xfd410
|
||||
} // line 127, address 0xfd650
|
||||
/*
|
||||
* Offset 0xFD658
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 3524)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ Tim2VRAM__7DISPMANPlP9TIMSTRUCTibiiii(struct DISPMAN *this /*$a0*/, long *timDataPtr /*$s0*/, struct TIMSTRUCT *destTimPtr /*$s2*/, int abr /*$s1*/, unsigned int setCoords /*stack 16*/, int clutX /*stack 20*/, int clutY /*stack 24*/, int iconX /*stack 28*/, int iconY /*stack 32*/)
|
||||
{ // line 1, address 0xfd658
|
||||
long flag; // $a0
|
||||
struct RECT *timRect; // $a2
|
||||
{ // line 19, address 0xfd6a4
|
||||
{ // line 25, address 0xfd6b8
|
||||
{ // line 34, address 0xfd6d8
|
||||
{ // line 39, address 0xfd6f0
|
||||
{ // line 40, address 0xfd6f0
|
||||
int n; // $a0
|
||||
} // line 45, address 0xfd718
|
||||
} // line 45, address 0xfd718
|
||||
} // line 45, address 0xfd718
|
||||
} // line 52, address 0xfd740
|
||||
} // line 52, address 0xfd740
|
||||
} // line 87, address 0xfd86c
|
||||
/*
|
||||
* Offset 0xFD86C
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 3749)
|
||||
* Stack frame base $sp, length 264
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ wipe_screen__7DISPMANii(struct DISPMAN *this /*$s1*/, int wt /*$s3*/, int step /*$s5*/)
|
||||
{ // line 1, address 0xfd86c
|
||||
int i; // $s2
|
||||
struct DRAWENV drawenv; // stack address -248
|
||||
struct DISPENV de; // stack address -152
|
||||
unsigned long fadeOt[3]; // stack address -128
|
||||
struct POLY_GT3 FadeSetTp; // stack address -112
|
||||
struct POLY_G4 FadePol; // stack address -72
|
||||
} // line 57, address 0xfdad8
|
||||
/*
|
||||
* Offset 0xFDAD8
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 392)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ DISPMAN_ctor(struct DISPMAN *this /*$s2*/, int __in_chrg /*$s3*/)
|
||||
{ // line 1, address 0xfdad8
|
||||
struct RECT rect; // stack address -32
|
||||
} // line 14, address 0xfdb38
|
||||
/*
|
||||
* Offset 0xFDBEC
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1105)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ DrawEnterName__7DISPMANPc(struct DISPMAN *this /*$s0*/, char *ascii /*$a3*/)
|
||||
{ // line 1, address 0xfdbec
|
||||
char message[64]; // stack address -72
|
||||
} // line 6, address 0xfdc6c
|
||||
/*
|
||||
* Offset 0xFDC6C
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1114)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ SetMenuOption__7DISPMANi(struct DISPMAN *this /*$s0*/, int menuOption /*$s1*/)
|
||||
{ // line 1, address 0xfdc6c
|
||||
} // line 7, address 0xfdca8
|
||||
/*
|
||||
* Offset 0xFDCBC
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1125)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ SetActiveFunction__7DISPMANi(struct DISPMAN *this /*$a0*/, int menuOption /*$a1*/)
|
||||
{ // line 1, address 0xfdcbc
|
||||
} // line 2, address 0xfdcc4
|
||||
/*
|
||||
* Offset 0xFDCC4
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1131)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ MoveActiveAreaTo__7DISPMANi(struct DISPMAN *this /*$s0*/, int area /*$s1*/)
|
||||
{ // line 1, address 0xfdcc4
|
||||
} // line 5, address 0xfdd0c
|
||||
/*
|
||||
* Offset 0xFDD0C
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1249)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ SelectNewBlock__7DISPMANi(struct DISPMAN *this /*$s0*/, int newBlock /*$a1*/)
|
||||
{ // line 1, address 0xfdd0c
|
||||
} // line 16, address 0xfddc0
|
||||
/*
|
||||
* Offset 0xFDDD0
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1710)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetArea__7DISPMANii(struct DISPMAN *this /*$a0*/, int x /*$a1*/, int y /*$a2*/)
|
||||
{ // line 1, address 0xfddd0
|
||||
int n; // $a3
|
||||
} // line 15, address 0xfde48
|
||||
/*
|
||||
* Offset 0xFDE50
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 1962)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ ActiveAreaCancel__7DISPMAN(struct DISPMAN *this /*$s0*/)
|
||||
{ // line 1, address 0xfde50
|
||||
} // line 53, address 0xfdf58
|
||||
/*
|
||||
* Offset 0xFDF58
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2028)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ AddingBlock__7DISPMANi(struct DISPMAN *this /*$a0*/, int n /*$a1*/)
|
||||
{ // line 1, address 0xfdf58
|
||||
} // line 1, address 0xfdf60
|
||||
/*
|
||||
* Offset 0xFDF60
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2030)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ DeletingCurrBlock__7DISPMANi(struct DISPMAN *this /*$a0*/, int n /*$a1*/)
|
||||
{ // line 1, address 0xfdf60
|
||||
} // line 1, address 0xfdf68
|
||||
/*
|
||||
* Offset 0xFDF68
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2033)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ InvalidateArea__7DISPMANG4RECT(struct DISPMAN *this /*$s3*/, struct RECT rect /*stack 4*/)
|
||||
{ // line 1, address 0xfdf68
|
||||
int n; // $s2
|
||||
} // line 7, address 0xfe040
|
||||
/*
|
||||
* Offset 0xFE040
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2081)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ InvalidateArea__7DISPMANi(struct DISPMAN *this /*$a0*/, int n /*$a1*/)
|
||||
{ // line 1, address 0xfe040
|
||||
int i; // $a2
|
||||
} // line 14, address 0xfe090
|
||||
/*
|
||||
* Offset 0xFE098
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2100)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DrawArea__7DISPMANi(struct DISPMAN *this /*$a2*/, int n /*$a1*/)
|
||||
{ // line 1, address 0xfe098
|
||||
} // line 26, address 0xfe134
|
||||
/*
|
||||
* Offset 0xFE144
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2129)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ FlashOn__7DISPMAN(struct DISPMAN *this /*$a0*/)
|
||||
{ // line 1, address 0xfe144
|
||||
} // line 1, address 0xfe150
|
||||
/*
|
||||
* Offset 0xFE150
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2132)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ FlashOff__7DISPMAN(struct DISPMAN *this /*$a0*/)
|
||||
{ // line 1, address 0xfe150
|
||||
} // line 3, address 0xfe160
|
||||
/*
|
||||
* Offset 0xFE160
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2355)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ FindKanji__7DISPMANs(struct DISPMAN *this /*$a0*/, short sjisCode /*$a1*/)
|
||||
{ // line 1, address 0xfe160
|
||||
int n; // $v1
|
||||
} // line 12, address 0xfe1a8
|
||||
/*
|
||||
* Offset 0xFE1B0
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2371)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
int /*$ra*/ CentrePrintKanji__7DISPMANPsiiiiii(struct DISPMAN *this /*$s5*/, short *string /*$s3*/, int x /*$s6*/, int y /*$s7*/, int maxChars /*stack 16*/, int r /*stack 20*/, int g /*stack 24*/, int b /*stack 28*/)
|
||||
{ // line 1, address 0xfe1b0
|
||||
} // line 4, address 0xfe258
|
||||
/*
|
||||
* Offset 0xFE258
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2379)
|
||||
* Stack frame base $sp, length 288
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ KanjiStrLen__FPsi(short *kanjiStringPtr /*$s1*/, int maxChars /*$s0*/)
|
||||
{ // line 1, address 0xfe258
|
||||
short textBuffer[128]; // stack address -272
|
||||
int totalLen; // $a1
|
||||
} // line 17, address 0xfe2f4
|
||||
/*
|
||||
* Offset 0xFE2F4
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2474)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetCurrBlock__7DISPMAN(struct DISPMAN *this /*$a0*/)
|
||||
{ // line 1, address 0xfe2f4
|
||||
} // line 1, address 0xfe300
|
||||
/*
|
||||
* Offset 0xFE300
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2476)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetCurrSlice__7DISPMAN(struct DISPMAN *this /*$a0*/)
|
||||
{ // line 1, address 0xfe300
|
||||
} // line 1, address 0xfe30c
|
||||
/*
|
||||
* Offset 0xFE30C
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2480)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ draw_card__7DISPMANiiPcb(struct DISPMAN *this /*$s1*/, int x /*$s2*/, int y /*$s3*/, char *text /*$a1*/, unsigned int selected /*stack 16*/)
|
||||
{ // line 1, address 0xfe30c
|
||||
} // line 15, address 0xfe418
|
||||
/*
|
||||
* Offset 0xFE434
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2515)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ AddIcon__7DISPMANP9TIMSTRUCTiiiiiib(struct DISPMAN *this /*$a0*/, struct TIMSTRUCT *tim /*$t2*/, int x /*$a2*/, int y /*$a1*/, int r /*stack 16*/, int g /*stack 20*/, int b /*stack 24*/, int trans /*stack 28*/, unsigned int scale /*stack 32*/)
|
||||
{ // line 1, address 0xfe434
|
||||
int XPlusW; // $t1
|
||||
int YPlusH; // $a0
|
||||
struct POLY_FT4 *polyFT4Ptr; // $t0
|
||||
} // line 45, address 0xfe590
|
||||
/*
|
||||
* Offset 0xFE598
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2616)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ AddMoveImage__7DISPMANP4RECTT1(struct DISPMAN *this /*$s0*/, struct RECT *srect /*$a1*/, struct RECT *drect /*$t0*/)
|
||||
{ // line 1, address 0xfe598
|
||||
struct DR_MOVE *movePtr; // $s0
|
||||
} // line 9, address 0xfe61c
|
||||
/*
|
||||
* Offset 0xFE61C
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2630)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ AddSprite__7DISPMANP9TIMSTRUCTiiiiii(struct DISPMAN *this /*$a0*/, struct TIMSTRUCT *tim /*$a1*/, int x /*$a2*/, int y /*$a3*/, int r /*stack 16*/, int g /*stack 20*/, int b /*stack 24*/, int trans /*stack 28*/)
|
||||
{ // line 1, address 0xfe61c
|
||||
struct SPRT *spritePtr; // $t0
|
||||
struct DR_TPAGE *tpagePtr; // $a0
|
||||
} // line 36, address 0xfe72c
|
||||
/*
|
||||
* Offset 0xFE72C
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 2699)
|
||||
* Stack frame base $sp, length 104
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
int /*$ra*/ DrawBox__7DISPMANiiiiiii(struct DISPMAN *this /*$a0*/, int x /*$s2*/, int y /*$s3*/, int w /*$s1*/, int h /*stack 16*/, int r /*stack 20*/, int g /*stack 24*/, int b /*stack 28*/)
|
||||
{ // line 1, address 0xfe72c
|
||||
struct LINE_F4 strF4; // stack address -88
|
||||
struct LINE_F2 strF2; // stack address -56
|
||||
} // line 32, address 0xfe834
|
||||
/*
|
||||
* Offset 0xFE834
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 3172)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ write_mess_c__7DISPMANPciiiiiiii(struct DISPMAN *this /*$s0*/, char *mesPtr /*$s1*/, int x /*stack 8*/, int y /*$s4*/, int font /*stack 16*/, int maxChars /*stack 20*/, int r /*stack 24*/, int g /*stack 28*/, int b /*stack 32*/, int trans /*stack 36*/)
|
||||
{ // line 1, address 0xfe834
|
||||
int w; // $s0
|
||||
} // line 6, address 0xfe908
|
||||
/*
|
||||
* Offset 0xFE908
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 3615)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ download_block_icon__7DISPMANiiii(struct DISPMAN *this /*$s2*/, int iconX /*$s3*/, int iconY /*$s1*/, int clutX /*$a3*/, int clutY /*stack 16*/)
|
||||
{ // line 1, address 0xfe908
|
||||
struct RECT rect; // stack address -32
|
||||
struct TIMSTRUCT *timPtr; // $s0
|
||||
unsigned short *clutWordPtr; // $v1
|
||||
{ // line 1, address 0xfe908
|
||||
int n; // $a0
|
||||
} // line 22, address 0xfe998
|
||||
} // line 42, address 0xfea44
|
||||
/*
|
||||
* Offset 0xFEA44
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 3809)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ move_screen__7DISPMANiii(struct DISPMAN *this /*$s0*/, int startY /*$a1*/, int finishY /*$s3*/, int steps /*$a3*/)
|
||||
{ // line 1, address 0xfea44
|
||||
int screenY; // $s1
|
||||
} // line 26, address 0xfeb00
|
||||
/*
|
||||
* Offset 0xFEB24
|
||||
* D:\driver2\game\MEMCARD\DISPLAY.CPP (line 3840)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetCyclesPerSecond__7DISPMAN(struct DISPMAN *this /*$a0*/)
|
||||
{ // line 1, address 0xfeb24
|
||||
} // line 14, address 0xfeb70
|
382
src/MEMCARD/pad.cpp
Normal file
382
src/MEMCARD/pad.cpp
Normal file
@ -0,0 +1,382 @@
|
||||
|
||||
/*
|
||||
* Offset 0xFEB70
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 32)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
struct PAD * /*$ra*/ __3PADPc(struct PAD *this /*$s1*/, char *bufferPtr /*$a1*/)
|
||||
{ // line 1, address 0xfeb70
|
||||
} // line 28, address 0xfec44
|
||||
/*
|
||||
* Offset 0xFECC0
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 137)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
unsigned short /*$ra*/ GetPadData__3PADi(struct PAD *this /*$s1*/, int pad /*$s0*/)
|
||||
{ // line 1, address 0xfecc0
|
||||
struct ControllerPacket cData; // stack address -56
|
||||
unsigned short retVal; // $s2
|
||||
} // line 296, address 0xff2cc
|
||||
/*
|
||||
* Offset 0xFF2CC
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 527)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
char * /*$ra*/ port_name__3PADi(struct PAD *this /*$a2*/, int port /*$a1*/)
|
||||
{ // line 1, address 0xff2cc
|
||||
} // line 36, address 0xff3b8
|
||||
/*
|
||||
* Offset 0xFF3C0
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 569)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
unsigned int /*$ra*/ WaitUntilCardRemoved__3PADi(struct PAD *this /*$s3*/, int slot /*$a1*/)
|
||||
{ // line 1, address 0xff3c0
|
||||
struct RECT rect; // stack address -48
|
||||
short padData; // $a0
|
||||
unsigned int bInBox; // $s2
|
||||
{ // line 8, address 0xff410
|
||||
{ // line 14, address 0xff448
|
||||
{ // line 1, address 0xff448
|
||||
struct PAD *this; // $s3
|
||||
{ // line 1, address 0xff448
|
||||
} // line 1, address 0xff4bc
|
||||
} // line 1, address 0xff4bc
|
||||
{ // line 15, address 0xff4c4
|
||||
{ // line 16, address 0xff4c4
|
||||
struct PAD *this; // $s3
|
||||
{ // line 16, address 0xff4c4
|
||||
} // line 16, address 0xff4c4
|
||||
} // line 16, address 0xff4c4
|
||||
{ // line 16, address 0xff4c4
|
||||
struct PAD *this; // $s3
|
||||
{ // line 16, address 0xff4c4
|
||||
} // line 16, address 0xff4c4
|
||||
} // line 16, address 0xff4c4
|
||||
{ // line 16, address 0xff4c4
|
||||
struct PAD *this; // $s3
|
||||
{ // line 16, address 0xff4c4
|
||||
} // line 16, address 0xff4c4
|
||||
} // line 16, address 0xff4c4
|
||||
{ // line 1, address 0xff564
|
||||
struct PAD *this; // $s3
|
||||
{ // line 1, address 0xff564
|
||||
} // line 1, address 0xff564
|
||||
} // line 1, address 0xff564
|
||||
{ // line 1, address 0xff57c
|
||||
struct PAD *this; // $s3
|
||||
{ // line 1, address 0xff57c
|
||||
} // line 1, address 0xff57c
|
||||
} // line 1, address 0xff57c
|
||||
{ // line 1, address 0xff594
|
||||
struct PAD *this; // $s3
|
||||
{ // line 1, address 0xff594
|
||||
} // line 1, address 0xff594
|
||||
} // line 1, address 0xff594
|
||||
{ // line 45, address 0xff5a4
|
||||
struct PAD *this; // $s3
|
||||
{ // line 45, address 0xff5a4
|
||||
} // line 45, address 0xff5a4
|
||||
} // line 45, address 0xff5a4
|
||||
{ // line 45, address 0xff5a4
|
||||
struct PAD *this; // $s3
|
||||
{ // line 45, address 0xff5a4
|
||||
} // line 45, address 0xff5a4
|
||||
} // line 45, address 0xff5a4
|
||||
} // line 56, address 0xff664
|
||||
} // line 64, address 0xff6b4
|
||||
} // line 64, address 0xff6b4
|
||||
} // line 64, address 0xff6e4
|
||||
/*
|
||||
* Offset 0xFF6E4
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 655)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
unsigned int /*$ra*/ WaitUntilAnyCardInserted__3PAD(struct PAD *this /*$s3*/)
|
||||
{ // line 1, address 0xff6e4
|
||||
struct RECT rect; // stack address -48
|
||||
unsigned int bInBox; // $s2
|
||||
{ // line 8, address 0xff730
|
||||
{ // line 20, address 0xff7a0
|
||||
{ // line 1, address 0xff7a0
|
||||
struct PAD *this; // $s3
|
||||
{ // line 1, address 0xff7a0
|
||||
} // line 1, address 0xff814
|
||||
} // line 1, address 0xff814
|
||||
{ // line 21, address 0xff81c
|
||||
{ // line 22, address 0xff81c
|
||||
struct PAD *this; // $s3
|
||||
{ // line 22, address 0xff81c
|
||||
} // line 22, address 0xff81c
|
||||
} // line 22, address 0xff81c
|
||||
{ // line 22, address 0xff81c
|
||||
struct PAD *this; // $s3
|
||||
{ // line 22, address 0xff81c
|
||||
} // line 22, address 0xff81c
|
||||
} // line 22, address 0xff81c
|
||||
{ // line 22, address 0xff81c
|
||||
struct PAD *this; // $s3
|
||||
{ // line 22, address 0xff81c
|
||||
} // line 22, address 0xff81c
|
||||
} // line 22, address 0xff81c
|
||||
{ // line 1, address 0xff8c0
|
||||
struct PAD *this; // $s3
|
||||
{ // line 1, address 0xff8c0
|
||||
} // line 1, address 0xff8c0
|
||||
} // line 1, address 0xff8c0
|
||||
{ // line 1, address 0xff8d8
|
||||
struct PAD *this; // $s3
|
||||
{ // line 1, address 0xff8d8
|
||||
} // line 1, address 0xff8d8
|
||||
} // line 1, address 0xff8d8
|
||||
{ // line 1, address 0xff8f0
|
||||
struct PAD *this; // $s3
|
||||
{ // line 1, address 0xff8f0
|
||||
} // line 1, address 0xff8f0
|
||||
} // line 1, address 0xff8f0
|
||||
{ // line 53, address 0xff900
|
||||
struct PAD *this; // $s3
|
||||
{ // line 53, address 0xff900
|
||||
} // line 53, address 0xff900
|
||||
} // line 53, address 0xff900
|
||||
{ // line 53, address 0xff900
|
||||
struct PAD *this; // $s3
|
||||
{ // line 53, address 0xff900
|
||||
} // line 53, address 0xff900
|
||||
} // line 53, address 0xff900
|
||||
} // line 63, address 0xff9b0
|
||||
} // line 71, address 0xff9ec
|
||||
} // line 71, address 0xff9ec
|
||||
} // line 71, address 0xffa1c
|
||||
/*
|
||||
* Offset 0xFFA1C
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 794)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ check_ports__3PAD(struct PAD *this /*$s1*/)
|
||||
{ // line 1, address 0xffa1c
|
||||
} // line 102, address 0xffc80
|
||||
/*
|
||||
* Offset 0xFFC98
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 905)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ search_ports__3PADib(struct PAD *this /*$s4*/, int slot /*$s0*/, unsigned int cycle /*$a2*/)
|
||||
{ // line 1, address 0xffc98
|
||||
} // line 46, address 0xffe18
|
||||
/*
|
||||
* Offset 0xFFE44
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 89)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ PAD_ctor(struct PAD *this /*$s1*/, int __in_chrg /*$s0*/)
|
||||
{ // line 1, address 0xffe44
|
||||
} // line 1, address 0xffe44
|
||||
/*
|
||||
* Offset 0xFFEA0
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 103)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
int /*$ra*/ UpdateSlots__3PAD(struct PAD *this /*$s0*/)
|
||||
{ // line 1, address 0xffea0
|
||||
} // line 31, address 0xffee0
|
||||
/*
|
||||
* Offset 0xFFEE0
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 437)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned int /*$ra*/ NegConInserted__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0xffee0
|
||||
} // line 8, address 0xfff10
|
||||
/*
|
||||
* Offset 0xFFF10
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 448)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned int /*$ra*/ ControllerInserted__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0xfff10
|
||||
} // line 12, address 0xfff48
|
||||
/*
|
||||
* Offset 0xFFF48
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 463)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned int /*$ra*/ ControllerChanged__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0xfff48
|
||||
} // line 2, address 0xfff5c
|
||||
/*
|
||||
* Offset 0xFFF5C
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 468)
|
||||
* Stack frame base $sp, length 56
|
||||
*/
|
||||
unsigned int /*$ra*/ SetControllerType__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0xfff5c
|
||||
struct ControllerPacket cData; // stack address -40
|
||||
} // line 19, address 0x1000d0
|
||||
/*
|
||||
* Offset 0x1000D0
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 490)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned int /*$ra*/ MouseInserted__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0x1000d0
|
||||
} // line 22, address 0x100158
|
||||
/*
|
||||
* Offset 0x100158
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 514)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetMouseX__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0x100158
|
||||
} // line 1, address 0x10016c
|
||||
/*
|
||||
* Offset 0x10016C
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 515)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetMouseY__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0x10016c
|
||||
} // line 1, address 0x100180
|
||||
/*
|
||||
* Offset 0x100180
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 519)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ ResetPadData__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0x100180
|
||||
} // line 2, address 0x1001ac
|
||||
/*
|
||||
* Offset 0x1001AC
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 733)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
char * /*$ra*/ GetPortName__3PADi(struct PAD *this /*$s1*/, int slot /*$s0*/)
|
||||
{ // line 1, address 0x1001ac
|
||||
} // line 6, address 0x100214
|
||||
/*
|
||||
* Offset 0x100214
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 757)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
char * /*$ra*/ GetControllerPortName__3PAD(struct PAD *this /*$s0*/)
|
||||
{ // line 1, address 0x100214
|
||||
} // line 4, address 0x100244
|
||||
/*
|
||||
* Offset 0x100244
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 778)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned int /*$ra*/ CardSelected__3PADi(struct PAD *this /*$a0*/, int slot /*$a1*/)
|
||||
{ // line 1, address 0x100244
|
||||
} // line 2, address 0x100260
|
||||
/*
|
||||
* Offset 0x100260
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 783)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
unsigned int /*$ra*/ CurrCardInfoRead__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0x100260
|
||||
} // line 2, address 0x10029c
|
||||
/*
|
||||
* Offset 0x10029C
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 956)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ next_port__3PADi(struct PAD *this /*$a0*/, int port /*$a1*/)
|
||||
{ // line 1, address 0x10029c
|
||||
} // line 17, address 0x1002a4
|
||||
/*
|
||||
* Offset 0x1002A4
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 978)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ GetCurrNoUsedBlocks__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0x1002a4
|
||||
} // line 2, address 0x1002e0
|
||||
/*
|
||||
* Offset 0x1002E0
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 984)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
unsigned int /*$ra*/ CurrSlotBlocksShared__3PADii(struct PAD *this /*$a0*/, int block1 /*$a1*/, int block2 /*$a2*/)
|
||||
{ // line 1, address 0x1002e0
|
||||
} // line 2, address 0x10031c
|
||||
/*
|
||||
* Offset 0x10031C
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 1001)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
struct MCSLOT * /*$ra*/ GetCurrSlotPtr__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0x10031c
|
||||
} // line 2, address 0x100340
|
||||
/*
|
||||
* Offset 0x100340
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 1006)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ GetCurrSlot__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0x100340
|
||||
} // line 2, address 0x100354
|
||||
/*
|
||||
* Offset 0x100354
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 1011)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
struct MCSLOT * /*$ra*/ GetDestSlotPtr__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0x100354
|
||||
} // line 2, address 0x10037c
|
||||
/*
|
||||
* Offset 0x10037C
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 1017)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned int /*$ra*/ CardChanged__3PADi(struct PAD *this /*$a0*/, int slot /*$a1*/)
|
||||
{ // line 1, address 0x10037c
|
||||
} // line 5, address 0x1003a8
|
||||
/*
|
||||
* Offset 0x1003B0
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 1029)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned int /*$ra*/ CardInserted__3PADi(struct PAD *this /*$a0*/, int slot /*$a1*/)
|
||||
{ // line 1, address 0x1003b0
|
||||
} // line 2, address 0x1003e4
|
||||
/*
|
||||
* Offset 0x1003E4
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 1035)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ CycleSelectedSlot__3PAD(struct PAD *this /*$a0*/)
|
||||
{ // line 1, address 0x1003e4
|
||||
} // line 4, address 0x10042c
|
||||
/*
|
||||
* Offset 0x10042C
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 1049)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
unsigned int /*$ra*/ CardFormatted__3PADi(struct PAD *this /*$a0*/, int slot /*$a1*/)
|
||||
{ // line 1, address 0x10042c
|
||||
} // line 2, address 0x100460
|
||||
/*
|
||||
* Offset 0x100460
|
||||
* D:\driver2\game\MEMCARD\PAD.CPP (line 1054)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
int /*$ra*/ FormatCard__3PADi(struct PAD *this /*$a0*/, int slot /*$a1*/)
|
||||
{ // line 1, address 0x100460
|
||||
} // line 5, address 0x1004c8
|
11
src/MEMCARD/text.cpp
Normal file
11
src/MEMCARD/text.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
/*
|
||||
* Offset 0x1004C8
|
||||
* D:\driver2\game\MEMCARD\TEXT.CPP (line 16)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ ParseLanguageFile__FPci(char *textBuffer /*$a0*/, int language /*$a1*/)
|
||||
{ // line 1, address 0x1004c8
|
||||
int m; // $t0
|
||||
char *textPtr; // $a0
|
||||
} // line 156, address 0x1005d8
|
8272
src/decomp_defs.h
Normal file
8272
src/decomp_defs.h
Normal file
File diff suppressed because it is too large
Load Diff
41
src/driver2_psx.sln
Normal file
41
src/driver2_psx.sln
Normal file
@ -0,0 +1,41 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.28307.271
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "driver2_psx", "driver2_psx.vcxproj", "{D062AA21-A7AE-4276-BD3E-A507EEEA0F9C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dump_music", "..\dump_music\dump_music.vcxproj", "{E82851E6-2037-4D5A-9C8B-910DBCD09783}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D062AA21-A7AE-4276-BD3E-A507EEEA0F9C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{D062AA21-A7AE-4276-BD3E-A507EEEA0F9C}.Debug|x64.Build.0 = Debug|x64
|
||||
{D062AA21-A7AE-4276-BD3E-A507EEEA0F9C}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{D062AA21-A7AE-4276-BD3E-A507EEEA0F9C}.Debug|x86.Build.0 = Debug|Win32
|
||||
{D062AA21-A7AE-4276-BD3E-A507EEEA0F9C}.Release|x64.ActiveCfg = Release|x64
|
||||
{D062AA21-A7AE-4276-BD3E-A507EEEA0F9C}.Release|x64.Build.0 = Release|x64
|
||||
{D062AA21-A7AE-4276-BD3E-A507EEEA0F9C}.Release|x86.ActiveCfg = Release|Win32
|
||||
{D062AA21-A7AE-4276-BD3E-A507EEEA0F9C}.Release|x86.Build.0 = Release|Win32
|
||||
{E82851E6-2037-4D5A-9C8B-910DBCD09783}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E82851E6-2037-4D5A-9C8B-910DBCD09783}.Debug|x64.Build.0 = Debug|x64
|
||||
{E82851E6-2037-4D5A-9C8B-910DBCD09783}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{E82851E6-2037-4D5A-9C8B-910DBCD09783}.Debug|x86.Build.0 = Debug|Win32
|
||||
{E82851E6-2037-4D5A-9C8B-910DBCD09783}.Release|x64.ActiveCfg = Release|x64
|
||||
{E82851E6-2037-4D5A-9C8B-910DBCD09783}.Release|x64.Build.0 = Release|x64
|
||||
{E82851E6-2037-4D5A-9C8B-910DBCD09783}.Release|x86.ActiveCfg = Release|Win32
|
||||
{E82851E6-2037-4D5A-9C8B-910DBCD09783}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {15651337-5D0E-44D8-829A-D56564515A9A}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
217
src/driver2_psx.vcxproj
Normal file
217
src/driver2_psx.vcxproj
Normal file
@ -0,0 +1,217 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>15.0</VCProjectVersion>
|
||||
<ProjectGuid>{D062AA21-A7AE-4276-BD3E-A507EEEA0F9C}</ProjectGuid>
|
||||
<RootNamespace>driver2psx</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>INCLUDE;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="decomp_defs.h" />
|
||||
<ClInclude Include="mips_hw_intpret.h" />
|
||||
<ClInclude Include="pres.h" />
|
||||
<ClInclude Include="r3000a_regs.h" />
|
||||
<ClInclude Include="include\texture.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="C\ai.c" />
|
||||
<ClCompile Include="C\bcoll3d.c" />
|
||||
<ClCompile Include="C\bcollide.c" />
|
||||
<ClCompile Include="C\bomberman.c" />
|
||||
<ClCompile Include="C\camera.c" />
|
||||
<ClCompile Include="C\cars.c" />
|
||||
<ClCompile Include="C\cell.c" />
|
||||
<ClCompile Include="C\civ_ai.c" />
|
||||
<ClCompile Include="C\convert.c" />
|
||||
<ClCompile Include="C\cop_ai.c" />
|
||||
<ClCompile Include="C\cosmetic.c" />
|
||||
<ClCompile Include="C\cutscene.c" />
|
||||
<ClCompile Include="C\debris.c" />
|
||||
<ClCompile Include="C\denting.c" />
|
||||
<ClCompile Include="C\director.c" />
|
||||
<ClCompile Include="C\dr2roads.c" />
|
||||
<ClCompile Include="C\draw.c" />
|
||||
<ClCompile Include="C\drivinggames.c" />
|
||||
<ClCompile Include="C\e3stuff.c" />
|
||||
<ClCompile Include="C\enviro.c" />
|
||||
<ClCompile Include="C\envsound.c" />
|
||||
<ClCompile Include="C\event.c" />
|
||||
<ClCompile Include="C\felony.c" />
|
||||
<ClCompile Include="C\fmvplay.c" />
|
||||
<ClCompile Include="C\gamesnd.c" />
|
||||
<ClCompile Include="C\glaunch.c" />
|
||||
<ClCompile Include="C\handling.c" />
|
||||
<ClCompile Include="C\job_fx.c" />
|
||||
<ClCompile Include="C\leadai.c" />
|
||||
<ClCompile Include="C\loadsave.c" />
|
||||
<ClCompile Include="C\loadview.c" />
|
||||
<ClCompile Include="C\map.c" />
|
||||
<ClCompile Include="C\mc_snd.c" />
|
||||
<ClCompile Include="C\mdraw.c" />
|
||||
<ClCompile Include="C\mgeneric.c" />
|
||||
<ClCompile Include="C\mission.c" />
|
||||
<ClCompile Include="C\models.c" />
|
||||
<ClCompile Include="C\motion_c.c" />
|
||||
<ClCompile Include="C\objanim.c" />
|
||||
<ClCompile Include="C\objcoll.c" />
|
||||
<ClCompile Include="C\overlay.c" />
|
||||
<ClCompile Include="C\overmap.c" />
|
||||
<ClCompile Include="C\pad.c" />
|
||||
<ClCompile Include="C\pathfind.c" />
|
||||
<ClCompile Include="C\pause.c" />
|
||||
<ClCompile Include="C\pedest.c" />
|
||||
<ClCompile Include="C\players.c" />
|
||||
<ClCompile Include="C\pres.c" />
|
||||
<ClCompile Include="C\replays.c" />
|
||||
<ClCompile Include="C\roadbits.c" />
|
||||
<ClCompile Include="C\scores.c" />
|
||||
<ClCompile Include="C\search.c" />
|
||||
<ClCompile Include="C\shadow.c" />
|
||||
<ClCompile Include="C\sky.c" />
|
||||
<ClCompile Include="C\sound.c" />
|
||||
<ClCompile Include="C\spool.c" />
|
||||
<ClCompile Include="C\system.c" />
|
||||
<ClCompile Include="C\targets.c" />
|
||||
<ClCompile Include="C\texture.c" />
|
||||
<ClCompile Include="C\tile.c" />
|
||||
<ClCompile Include="C\time.c" />
|
||||
<ClCompile Include="C\wheelforces.c" />
|
||||
<ClCompile Include="C\xaplay.c" />
|
||||
<ClCompile Include="C\xmplay.c" />
|
||||
<ClCompile Include="FRONTEND\femain.c" />
|
||||
<ClCompile Include="main.c" />
|
||||
<ClCompile Include="MEMCARD\CardMain.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\cman.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\delete.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\display.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\pad.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\Slot.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\text.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
261
src/driver2_psx.vcxproj.filters
Normal file
261
src/driver2_psx.vcxproj.filters
Normal file
@ -0,0 +1,261 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Файлы ресурсов">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Sources">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Sources\Frontend">
|
||||
<UniqueIdentifier>{069c4a2c-4fcc-49a8-a88c-83835a884e21}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Sources\MemCard">
|
||||
<UniqueIdentifier>{a70b1578-2234-422f-b384-799ac4b30755}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Includes">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="decomp_defs.h">
|
||||
<Filter>Includes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="mips_hw_intpret.h">
|
||||
<Filter>Includes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="r3000a_regs.h">
|
||||
<Filter>Includes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="include\texture.h">
|
||||
<Filter>Includes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="pres.h">
|
||||
<Filter>Includes</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="main.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\dr2roads.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\objanim.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\overlay.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\replays.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\search.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\ai.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\bcoll3d.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\bcollide.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\bomberman.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\camera.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\overmap.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\cars.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\cell.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\civ_ai.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\convert.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\cop_ai.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\cosmetic.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\cutscene.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\debris.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\denting.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\director.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\draw.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\tile.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\drivinggames.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\e3stuff.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\enviro.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\envsound.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\event.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\felony.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\fmvplay.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\gamesnd.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\glaunch.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\handling.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\job_fx.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\leadai.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\loadsave.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\loadview.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\map.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\mc_snd.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\mdraw.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\mgeneric.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\mission.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\models.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\motion_c.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\objcoll.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\pad.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\pathfind.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\pause.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\pedest.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\players.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\pres.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\roadbits.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\scores.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\shadow.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\sky.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\sound.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\spool.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\system.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\targets.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\texture.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\time.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\wheelforces.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\xaplay.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C\xmplay.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="FRONTEND\femain.c">
|
||||
<Filter>Sources\Frontend</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\CardMain.c">
|
||||
<Filter>Sources\MemCard</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\Slot.cpp">
|
||||
<Filter>Sources\MemCard</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\delete.c">
|
||||
<Filter>Sources\MemCard</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\display.cpp">
|
||||
<Filter>Sources\MemCard</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\pad.cpp">
|
||||
<Filter>Sources\MemCard</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\text.cpp">
|
||||
<Filter>Sources\MemCard</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MEMCARD\cman.cpp">
|
||||
<Filter>Sources\MemCard</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
404
src/main.c
Normal file
404
src/main.c
Normal file
@ -0,0 +1,404 @@
|
||||
/*
|
||||
#include "mips_hw_intpret.h"
|
||||
#include "decomp_defs.h"
|
||||
|
||||
void ProcessSpoolInfoLump1(char *lump_ptr, int lump_size)
|
||||
{
|
||||
int i; // _t2
|
||||
int length; // _v1
|
||||
int slots_count; // _t0
|
||||
int objects_count; // _t1
|
||||
int num_of_regions; // _v0
|
||||
char *alloclist; // _a3
|
||||
|
||||
move(_a2, _a0);
|
||||
//lui(_v0, 0xA);
|
||||
//addiu(_a1, _v0, pvsSize);0
|
||||
la(_a1, pvsSize);
|
||||
sw(_zero, (ubyte*)pvsSize);
|
||||
sw(_zero, (ubyte*)pvsSize + 4);
|
||||
sw(_zero, (ubyte*)pvsSize + 8);
|
||||
sw(_zero, (ubyte*)pvsSize + 0xC);
|
||||
la(_v1, lump_ptr);
|
||||
li(_v0, -1);
|
||||
la(_a0, mallocptr);
|
||||
sll(_v1, _v1, 0xB);
|
||||
slt(_v0, _v0, _v1);
|
||||
sw(_a0, model_spool_buffer);
|
||||
addiu(_a2, _a2, 4);
|
||||
if (bnez(_v0))
|
||||
{
|
||||
lui(_v1, 1);
|
||||
}
|
||||
addu(_v1, _a0, _v1);
|
||||
move(_a3, _v1);
|
||||
move(_t0, _zero);
|
||||
move(_t1, _zero);
|
||||
li(_t7, -0x800);
|
||||
move(_t6, _a1);
|
||||
|
||||
la(_t9, cell_objects_add);
|
||||
la(_t4, cell_slots_add);
|
||||
la(_t3, PVS_Buffers);
|
||||
li(_t2, 3);
|
||||
|
||||
sw(_v1, mallocptr);
|
||||
lw(_v1, (uint32*)uregv(_a2));
|
||||
addiu(_v0, _a2, 4);
|
||||
sw(_v0, &Music_And_AmbientOffsets);
|
||||
addiu(_v1, _v1, 4);
|
||||
addu(_a2, _a2, _v1);
|
||||
lw(_a0, (uint32*)uregv(_a2));
|
||||
addiu(_v0, _a2, 4);
|
||||
sw(_v0, &AreaData);
|
||||
sll(_v1, _a0, 4);
|
||||
addiu(_v0, _v1, 4);
|
||||
addu(_a2, _a2, _v0);
|
||||
sw(_a2, &AreaTPages);
|
||||
addu(_a2, _a2, _v1);
|
||||
move(_a1, _a2);
|
||||
sw(_a0, &NumAreas);
|
||||
}
|
||||
*/
|
||||
|
||||
#include "decomp_defs.h"
|
||||
#include "mips_hw_intpret.h"
|
||||
|
||||
uint32 _registers[allregs] = { 0 };
|
||||
|
||||
int levelstartpos[8][4] = {
|
||||
{0x12B1, 0xFFFFFC00, 0xFFFC9794, 0},
|
||||
{0xFFFC74AC, 0x800, 0xFFFC6961, 0},
|
||||
{0x383CB, 0xFFFFFC00, 0xABE1E, 0},
|
||||
{0x165EF, 0xFFFFFC00, 0xFFFAB3D9, 0},
|
||||
{0x24548, 0x1813, 0xFFFE4A80, 0},
|
||||
{ 0xFFFD67F0, 0x1813, 0x58228, 0},
|
||||
{ 0xFFFFD6FC, 0xFFFFE7ED, 0xFFFFA980, 0},
|
||||
{ 0xFFFFDCDD, 0xFFFFE7ED, 0xF8A7, 0},
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Offset 0x58C70
|
||||
* D:\driver2\game\C\MAIN.C (line 2672)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ ProcessLumps(char *lump_ptr /*$s1*/, int lump_size /*$a1*/)
|
||||
{ // line 1, address 0x58c70
|
||||
int quit; // $s3
|
||||
int lump_type; // $v1
|
||||
int seg_size; // $s0
|
||||
{ // line 14, address 0x58dfc
|
||||
{ // line 173, address 0x58fe4
|
||||
struct DRIVER2_JUNCTION *dst; // $a0
|
||||
unsigned long *src; // $a2
|
||||
int i; // $v1
|
||||
} // line 186, address 0x5902c
|
||||
{ // line 193, address 0x59034
|
||||
struct DRIVER2_JUNCTION *dst; // $a0
|
||||
unsigned long *src; // $a2
|
||||
int i; // $v1
|
||||
} // line 206, address 0x59080
|
||||
} // line 218, address 0x5908c
|
||||
} // line 222, address 0x590b8
|
||||
/*
|
||||
* Offset 0x590B8
|
||||
* D:\driver2\game\C\MAIN.C (line 2896)
|
||||
* Stack frame base $sp, length 112
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ LoadGameLevel()
|
||||
{ // line 2, address 0x590b8
|
||||
int sector; // stack address -32
|
||||
int nsectors; // $s1
|
||||
char name[64]; // stack address -96
|
||||
char *malloc_lump; // $s2
|
||||
} // line 71, address 0x592a0
|
||||
/*
|
||||
* Offset 0x592A0
|
||||
* D:\driver2\game\C\MAIN.C (line 3003)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -4: s0 ra
|
||||
*/
|
||||
void /*$ra*/ InitModelNames()
|
||||
{ // line 2, address 0x592a0
|
||||
} // line 64, address 0x59398
|
||||
/*
|
||||
* Offset 0x59398
|
||||
* D:\driver2\game\C\MAIN.C (line 3114)
|
||||
* Stack frame base $sp, length 80
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 s6 s7 ra
|
||||
*/
|
||||
void /*$ra*/ GameInit()
|
||||
{ // line 8, address 0x59398
|
||||
{ // line 112, address 0x59528
|
||||
} // line 114, address 0x5953c
|
||||
{ // line 149, address 0x5961c
|
||||
} // line 149, address 0x5961c
|
||||
{ // line 157, address 0x59644
|
||||
} // line 163, address 0x5966c
|
||||
{ // line 191, address 0x59718
|
||||
struct STREAM_SOURCE *pinfo; // $s0
|
||||
char padid; // stack address -48
|
||||
int i; // $s2
|
||||
} // line 245, address 0x59874
|
||||
{ // line 328, address 0x599ac
|
||||
int loop; // $s0
|
||||
{ // line 331, address 0x599b4
|
||||
} // line 331, address 0x599b4
|
||||
} // line 333, address 0x599d4
|
||||
{ // line 341, address 0x599f4
|
||||
int i; // $v1
|
||||
} // line 346, address 0x59a20
|
||||
{ // line 350, address 0x59a20
|
||||
} // line 361, address 0x59a20
|
||||
{ // line 390, address 0x59a74
|
||||
} // line 392, address 0x59a7c
|
||||
} // line 395, address 0x59aac
|
||||
/*
|
||||
* Offset 0x59AAC
|
||||
* D:\driver2\game\C\MAIN.C (line 3555)
|
||||
* Stack frame base $sp, length 56
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
void /*$ra*/ StepSim()
|
||||
{ // line 2, address 0x59aac
|
||||
static unsigned long t0; // address 0x0
|
||||
static char t1; // address 0x4
|
||||
static char t2; // address 0x5
|
||||
static int oldsp; // address 0x8
|
||||
struct _CAR_DATA *lcp; // $s0
|
||||
int i; // $s2
|
||||
{ // line 78, address 0x59cd8
|
||||
int eekTimer; // $s0
|
||||
{ // line 84, address 0x59d2c
|
||||
} // line 86, address 0x59d2c
|
||||
} // line 90, address 0x59d88
|
||||
{ // line 94, address 0x59dd4
|
||||
} // line 98, address 0x59dd4
|
||||
{ // line 1, address 0x5a040
|
||||
} // line 1, address 0x5a040
|
||||
{ // line 283, address 0x5a288
|
||||
int padsteer; // $a1
|
||||
{ // line 313, address 0x5a388
|
||||
} // line 317, address 0x5a3a4
|
||||
{ // line 324, address 0x5a3dc
|
||||
} // line 324, address 0x5a3dc
|
||||
} // line 324, address 0x5a3dc
|
||||
{ // line 331, address 0x5a3fc
|
||||
} // line 333, address 0x5a430
|
||||
{ // line 428, address 0x5a6b8
|
||||
int i; // $s1
|
||||
int j; // $s0
|
||||
static int stupid_logic[4]; // address 0x0
|
||||
{ // line 448, address 0x5a7ac
|
||||
} // line 450, address 0x5a7fc
|
||||
} // line 451, address 0x5a818
|
||||
{ // line 478, address 0x5a8fc
|
||||
} // line 481, address 0x5a914
|
||||
} // line 484, address 0x5a944
|
||||
/*
|
||||
* Offset 0x5A944
|
||||
* D:\driver2\game\C\MAIN.C (line 4046)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ GameLoop()
|
||||
{ // line 2, address 0x5a944
|
||||
int i; // $s0
|
||||
struct RECT dest; // stack address -24
|
||||
{ // line 79, address 0x5aa94
|
||||
static struct POLY_FT3 buffer[2]; // address 0x10
|
||||
static struct POLY_FT3 *null; // address 0xc
|
||||
} // line 94, address 0x5ab00
|
||||
} // line 142, address 0x5ab90
|
||||
/*
|
||||
* Offset 0x5AB90
|
||||
* D:\driver2\game\C\MAIN.C (line 4196)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ StepGame()
|
||||
{ // line 2, address 0x5ab90
|
||||
{ // line 42, address 0x5abc8
|
||||
} // line 44, address 0x5abd8
|
||||
{ // line 56, address 0x5ac40
|
||||
int i; // $a1
|
||||
} // line 66, address 0x5aca4
|
||||
{ // line 140, address 0x5ae88
|
||||
} // line 149, address 0x5aeb8
|
||||
{ // line 165, address 0x5af28
|
||||
} // line 172, address 0x5af38
|
||||
{ // line 199, address 0x5afd4
|
||||
int strobe; // $v0
|
||||
} // line 202, address 0x5b020
|
||||
{ // line 340, address 0x5b34c
|
||||
} // line 342, address 0x5b384
|
||||
} // line 351, address 0x5b3ec
|
||||
/*
|
||||
* Offset 0x5B3EC
|
||||
* D:\driver2\game\C\MAIN.C (line 4767)
|
||||
* Stack frame base $sp, length 72
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
int /*$ra*/ main()
|
||||
{ // line 1, address 0x5b3ec
|
||||
{ // line 1, address 0x5b3ec
|
||||
{ // line 1, address 0x5b3ec
|
||||
char *PALScreenNames[4]; // stack address -24
|
||||
char *NTSCScreenNames[4]; // stack address -40
|
||||
char *OPMScreenNames[4]; // stack address -56
|
||||
} // line 1, address 0x5b3ec
|
||||
} // line 1, address 0x5b3ec
|
||||
} // line 101, address 0x5b5b4
|
||||
/*
|
||||
* Offset 0x5B5B4
|
||||
* D:\driver2\game\C\MAIN.C (line 4893)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -8: s0 s1 s2 s3 s4 s5 ra
|
||||
*/
|
||||
void /*$ra*/ UpdatePlayerInformation()
|
||||
{ // line 2, address 0x5b5b4
|
||||
struct _CAR_DATA *cp; // $s1
|
||||
int count; // $s0
|
||||
int scale; // $v1
|
||||
int wheel; // $t1
|
||||
int wheelsonwater; // $t2
|
||||
} // line 79, address 0x5b8f0
|
||||
/*
|
||||
* Offset 0x5B8F0
|
||||
* D:\driver2\game\C\MAIN.C (line 5021)
|
||||
* Stack frame base $sp, length 40
|
||||
* Saved registers at address -8: s0 s1 s2 s3 ra
|
||||
*/
|
||||
void /*$ra*/ RenderGame2(int view /*$s3*/)
|
||||
{ // line 1, address 0x5b8f0
|
||||
int spaceFree; // $a1
|
||||
int notInDreaAndStevesEvilLair; // $s0
|
||||
{ // line 46, address 0x5ba0c
|
||||
int strobe; // $v0
|
||||
} // line 49, address 0x5ba54
|
||||
{ // line 52, address 0x5ba54
|
||||
int i; // $s1
|
||||
} // line 56, address 0x5baec
|
||||
{ // line 69, address 0x5bb4c
|
||||
struct POLY_F4 *poly; // $v1
|
||||
int col; // $a1
|
||||
} // line 92, address 0x5bc88
|
||||
{ // line 100, address 0x5bca8
|
||||
} // line 104, address 0x5bcf0
|
||||
} // line 111, address 0x5bd4c
|
||||
/*
|
||||
* Offset 0x5BD4C
|
||||
* D:\driver2\game\C\MAIN.C (line 5272)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 ra
|
||||
*/
|
||||
void /*$ra*/ InitGameVariables()
|
||||
{ // line 2, address 0x5bd4c
|
||||
} // line 69, address 0x5bfdc
|
||||
/*
|
||||
* Offset 0x5BFDC
|
||||
* D:\driver2\game\C\MAIN.C (line 5345)
|
||||
* Stack frame base $sp, length 48
|
||||
* Saved registers at address -4: s0 s1 s2 ra
|
||||
*/
|
||||
void /*$ra*/ DealWithHorn(char *hr /*$s2*/, int i /*$s1*/)
|
||||
{ // line 1, address 0x5bfdc
|
||||
struct _CAR_DATA *car; // $s0
|
||||
{ // line 3, address 0x5c07c
|
||||
} // line 18, address 0x5c18c
|
||||
} // line 20, address 0x5c1bc
|
||||
/*
|
||||
* Offset 0x5C1D4
|
||||
* D:\driver2\game\C\MAIN.C (line 5367)
|
||||
* Stack frame base $sp, length 64
|
||||
* Saved registers at address -4: s0 s1 s2 s3 s4 s5 s6 s7 fp ra
|
||||
*/
|
||||
int /*$ra*/ Havana3DOcclusion(void(*func)() /*$a3*/, int *param /*$fp*/)
|
||||
{ // line 1, address 0x5c1d4
|
||||
int outside; // $s6
|
||||
int otAltered; // $s5
|
||||
{ // line 12, address 0x5c270
|
||||
int draw; // $s2
|
||||
int loop; // $s0
|
||||
} // line 106, address 0x5c47c
|
||||
} // line 113, address 0x5c4c0
|
||||
/*
|
||||
* Offset 0x5C4C0
|
||||
* D:\driver2\game\C\MAIN.C (line 4549)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ DrawGame()
|
||||
{ // line 2, address 0x5c4c0
|
||||
static unsigned long frame; // address 0xc8
|
||||
{ // line 6, address 0x5c4e8
|
||||
} // line 12, address 0x5c538
|
||||
{ // line 18, address 0x5c554
|
||||
} // line 28, address 0x5c5bc
|
||||
} // line 34, address 0x5c5dc
|
||||
/*
|
||||
* Offset 0x5C5DC
|
||||
* D:\driver2\game\C\MAIN.C (line 4586)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ EndGame(enum GAMEMODE mode /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x5C5F8
|
||||
* D:\driver2\game\C\MAIN.C (line 4593)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
void /*$ra*/ EnablePause(enum PAUSEMODE mode /*$a0*/)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Offset 0x5C638
|
||||
* D:\driver2\game\C\MAIN.C (line 4602)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ CheckForPause()
|
||||
{ // line 2, address 0x5c638
|
||||
{ // line 1, address 0x5c64c
|
||||
} // line 1, address 0x5c67c
|
||||
} // line 16, address 0x5c6d0
|
||||
/*
|
||||
* Offset 0x5C6D0
|
||||
* D:\driver2\game\C\MAIN.C (line 4870)
|
||||
* Stack frame base $sp, length 32
|
||||
* Saved registers at address -8: s0 s1 ra
|
||||
*/
|
||||
void /*$ra*/ FadeScreen(int end_value /*$a1*/)
|
||||
{ // line 1, address 0x5c6d0
|
||||
int tmp2; // $s1
|
||||
} // line 18, address 0x5c748
|
||||
/*
|
||||
* Offset 0x5C748
|
||||
* D:\driver2\game\C\MAIN.C (line 5260)
|
||||
* Stack frame base $sp, length 24
|
||||
* Saved registers at address -8: ra
|
||||
*/
|
||||
void /*$ra*/ RenderGame()
|
||||
{ // line 2, address 0x5c748
|
||||
{ // line 2, address 0x5c748
|
||||
{ // line 2, address 0x5c748
|
||||
static unsigned long frame; // address 0xc8
|
||||
{ // line 1, address 0x5c77c
|
||||
} // line 1, address 0x5c7cc
|
||||
{ // line 1, address 0x5c7e8
|
||||
} // line 1, address 0x5c850
|
||||
} // line 1, address 0x5c850
|
||||
} // line 1, address 0x5c850
|
||||
} // line 9, address 0x5c884
|
||||
/*
|
||||
* Offset 0x5C884
|
||||
* D:\driver2\game\C\MAIN.C (line 2973)
|
||||
* Stack frame base $sp, length 0
|
||||
*/
|
||||
int /*$ra*/ ReplayLog_Fnarr_He_Said_Log(int val /*$a0*/)
|
||||
{
|
||||
}
|
281
src/mips_hw_intpret.h
Normal file
281
src/mips_hw_intpret.h
Normal file
@ -0,0 +1,281 @@
|
||||
#ifndef MIPS_HW_INTPRET_H
|
||||
#define MIPS_HW_INTPRET_H
|
||||
|
||||
#include "r3000a_regs.h"
|
||||
|
||||
#ifndef __cplusplus
|
||||
|
||||
typedef int bool;
|
||||
|
||||
#endif // __cplusplus
|
||||
|
||||
//-------------------------------------------------------------
|
||||
// Helpers
|
||||
//-------------------------------------------------------------
|
||||
|
||||
inline int sregv(RegVar_t r) // returns signed register value
|
||||
{
|
||||
return *(int*)&_registers[r];
|
||||
}
|
||||
|
||||
inline uint32 uregv(RegVar_t r) // returns unsigned register value
|
||||
{
|
||||
return *(uint32*)&_registers[r];
|
||||
}
|
||||
|
||||
inline void stores(RegVar_t r, int v) // stores signed register value
|
||||
{
|
||||
int* regVal = (int*)&_registers[r];
|
||||
*regVal = v;
|
||||
}
|
||||
|
||||
inline void storeu(RegVar_t r, uint32 v) // stores unsigned register value
|
||||
{
|
||||
_registers[r] = v;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------
|
||||
// operations
|
||||
//-------------------------------------------------------------
|
||||
|
||||
inline void add(RegVar_t d, RegVar_t s, RegVar_t t)
|
||||
{
|
||||
_registers[d] = sregv(s) + sregv(t);
|
||||
}
|
||||
|
||||
inline void addi(RegVar_t d, RegVar_t s, int imm)
|
||||
{
|
||||
_registers[d] = sregv(s) + imm;
|
||||
}
|
||||
|
||||
inline void addiu(RegVar_t d, RegVar_t s, uint32 imm)
|
||||
{
|
||||
_registers[d] = _registers[s] + imm;
|
||||
}
|
||||
|
||||
inline void addu(RegVar_t d, RegVar_t s, RegVar_t t)
|
||||
{
|
||||
_registers[d] = _registers[s] + _registers[t];
|
||||
}
|
||||
|
||||
inline void and(RegVar_t d, RegVar_t s, RegVar_t t)
|
||||
{
|
||||
_registers[d] = _registers[s] & _registers[t];
|
||||
}
|
||||
|
||||
inline void andi(RegVar_t d, RegVar_t s, uint32 imm)
|
||||
{
|
||||
_registers[d] = _registers[s] & imm;
|
||||
}
|
||||
|
||||
inline void sub(RegVar_t d, RegVar_t s, RegVar_t t)
|
||||
{
|
||||
_registers[d] = sregv(s) - sregv(t);
|
||||
}
|
||||
|
||||
inline void subu(RegVar_t d, RegVar_t s, RegVar_t t)
|
||||
{
|
||||
_registers[d] = _registers[s] - _registers[t];
|
||||
}
|
||||
|
||||
inline void or(RegVar_t d, RegVar_t s, RegVar_t t)
|
||||
{
|
||||
_registers[d] = _registers[s] | _registers[t];
|
||||
}
|
||||
|
||||
inline void ori(RegVar_t d, RegVar_t s, uint32 imm)
|
||||
{
|
||||
_registers[d] = _registers[s] | imm;
|
||||
}
|
||||
|
||||
inline void xor (RegVar_t d, RegVar_t s, RegVar_t t)
|
||||
{
|
||||
_registers[d] = _registers[s] ^ _registers[t];
|
||||
}
|
||||
|
||||
inline void xori(RegVar_t d, RegVar_t s, uint32 imm)
|
||||
{
|
||||
_registers[d] = _registers[s] ^ imm;
|
||||
}
|
||||
|
||||
//-------------
|
||||
|
||||
inline bool beq(RegVar_t s, RegVar_t t)
|
||||
{
|
||||
return (_registers[s] == _registers[t]);
|
||||
}
|
||||
|
||||
inline bool beqz(RegVar_t s)
|
||||
{
|
||||
return (_registers[s] == 0);
|
||||
}
|
||||
|
||||
//---
|
||||
|
||||
inline bool bgez(RegVar_t s)
|
||||
{
|
||||
return (_registers[s] >= 0);
|
||||
}
|
||||
|
||||
inline bool bgtz(RegVar_t s)
|
||||
{
|
||||
return (_registers[s] > 0);
|
||||
}
|
||||
|
||||
//---
|
||||
|
||||
inline bool blez(RegVar_t s)
|
||||
{
|
||||
return (_registers[s] <= 0);
|
||||
}
|
||||
|
||||
inline bool bltz(RegVar_t s)
|
||||
{
|
||||
return (_registers[s] < 0);
|
||||
}
|
||||
|
||||
//---
|
||||
|
||||
inline bool bne(RegVar_t s, RegVar_t t)
|
||||
{
|
||||
return (_registers[s] != _registers[t]);
|
||||
}
|
||||
|
||||
inline bool bnez(RegVar_t s)
|
||||
{
|
||||
return (_registers[s] != 0);
|
||||
}
|
||||
|
||||
//-------------
|
||||
|
||||
inline void lb(RegVar_t s, ubyte byteimm)
|
||||
{
|
||||
_registers[s] = byteimm;
|
||||
}
|
||||
|
||||
//---
|
||||
|
||||
inline void li(RegVar_t s, uint32 imm)
|
||||
{
|
||||
_registers[s] = imm;
|
||||
}
|
||||
|
||||
inline void lui(RegVar_t s, uint32 imm)
|
||||
{
|
||||
_registers[s] = (imm << 16);
|
||||
}
|
||||
|
||||
inline void lw(RegVar_t s, uint32* w)
|
||||
{
|
||||
_registers[s] = *w;
|
||||
}
|
||||
|
||||
//---
|
||||
|
||||
inline void mfhi(RegVar_t s)
|
||||
{
|
||||
_registers[s] = _registers[_HI];
|
||||
}
|
||||
|
||||
inline void mflo(RegVar_t s)
|
||||
{
|
||||
_registers[s] = _registers[_LO];
|
||||
}
|
||||
|
||||
inline void div(RegVar_t s, RegVar_t t)
|
||||
{
|
||||
_registers[_LO] = sregv(s) / sregv(t);
|
||||
_registers[_HI] = sregv(s) % sregv(t);
|
||||
}
|
||||
|
||||
inline void divu(RegVar_t s, RegVar_t t)
|
||||
{
|
||||
_registers[_LO] = _registers[s] / _registers[t];
|
||||
_registers[_HI] = _registers[s] % _registers[t];
|
||||
}
|
||||
|
||||
inline void mult(RegVar_t s, RegVar_t t)
|
||||
{
|
||||
unsigned __int64* result = (__int64*)&_registers[_LO];
|
||||
*result = (__int64)sregv(s) * (__int64)sregv(t);
|
||||
}
|
||||
|
||||
inline void multu(RegVar_t s, RegVar_t t)
|
||||
{
|
||||
unsigned __int64* result = (__int64*)&_registers[_LO];
|
||||
*result = (__int64)_registers[s] * (__int64)_registers[t];
|
||||
}
|
||||
|
||||
//---
|
||||
|
||||
inline void sb(RegVar_t t, char* b)
|
||||
{
|
||||
*b = 0xff & _registers[t];
|
||||
}
|
||||
|
||||
inline void sw(RegVar_t t, int* w)
|
||||
{
|
||||
*w = _registers[t];
|
||||
}
|
||||
|
||||
inline void sll(RegVar_t d, RegVar_t t, uint32 h)
|
||||
{
|
||||
_registers[d] = _registers[t] << h;
|
||||
}
|
||||
|
||||
inline void sllv(RegVar_t d, RegVar_t t, RegVar_t s)
|
||||
{
|
||||
_registers[d] = _registers[t] << _registers[s];
|
||||
}
|
||||
|
||||
inline void sra(RegVar_t d, RegVar_t t, int h)
|
||||
{
|
||||
_registers[d] = sregv(t) >> h;
|
||||
}
|
||||
|
||||
inline void srl(RegVar_t d, RegVar_t t, uint32 h)
|
||||
{
|
||||
_registers[d] = _registers[t] >> h;
|
||||
}
|
||||
|
||||
inline void srlv(RegVar_t d, RegVar_t t, RegVar_t s)
|
||||
{
|
||||
_registers[d] = _registers[t] >> _registers[s];
|
||||
}
|
||||
|
||||
inline void slt(RegVar_t d, RegVar_t s, RegVar_t t)
|
||||
{
|
||||
if (sregv(s) < sregv(t))
|
||||
_registers[d] = 1;
|
||||
else
|
||||
_registers[d] = 0;
|
||||
}
|
||||
|
||||
inline void sltu(RegVar_t d, RegVar_t s, RegVar_t t)
|
||||
{
|
||||
if(_registers[s] < _registers[t])
|
||||
_registers[d] = 1;
|
||||
else
|
||||
_registers[d] = 0;
|
||||
}
|
||||
|
||||
inline void slti(RegVar_t d, RegVar_t s, int imm)
|
||||
{
|
||||
if (sregv(s) < imm)
|
||||
_registers[d] = 1;
|
||||
else
|
||||
_registers[d] = 0;
|
||||
}
|
||||
|
||||
inline void sltiu(RegVar_t d, RegVar_t s, uint32 imm)
|
||||
{
|
||||
if (_registers[s] < imm)
|
||||
_registers[d] = 1;
|
||||
else
|
||||
_registers[d] = 0;
|
||||
}
|
||||
|
||||
#define move(a,b) add(a,b,_zero)
|
||||
#define la(a,b) li(a,(uint32)b)
|
||||
|
||||
#endif // MIPS_HW_INTPRET_H
|
4
src/pres.h
Normal file
4
src/pres.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
void SetCLUT16Flags(unsigned short clutID, unsigned short mask, char transparent);
|
||||
void InitButtonTextures();
|
31
src/r3000a_regs.h
Normal file
31
src/r3000a_regs.h
Normal file
@ -0,0 +1,31 @@
|
||||
#ifndef R300A_REGS_H
|
||||
#define R300A_REGS_H
|
||||
|
||||
typedef unsigned int uint32;
|
||||
typedef unsigned char ubyte;
|
||||
|
||||
typedef enum ERegVar
|
||||
{
|
||||
_zero = 0, // Always returns 0
|
||||
|
||||
_at = 1, // Reserved for use by assembler
|
||||
_v0 = 2, _v1 = 3, // Value returned by subroutine
|
||||
_a0 = 4, _a1 = 5, _a2 = 6, _a3 = 7, // First four parameters (arguments) for a subroutine
|
||||
_t0 = 8, _t1 = 9, _t2 = 10, _t3 = 11, _t4 = 12, _t5 = 13, _t6 = 14, _t7 = 15, // temporary, subroutines can use without saving
|
||||
_t8 = 24, _t9 = 25, // Subroutines can use without saving
|
||||
_s0 = 16, _s1 = 17, _s2 = 18, _s3 = 19, _s4 = 20, _s5 = 21, _s6 = 22, _s7 = 23, // Subroutine register variables, must be restored before returning
|
||||
_k0 = 26, _k1 = 27, // Reserved for use by interrupt / trap handler; may change under your feet
|
||||
_gp = 28, // Global pointer; used to access "static" or "extern" variables
|
||||
_sp = 29, // Stack pointer
|
||||
_s8 = 30, // fp // Frame pointer or ninth subroutine variable
|
||||
_ra = 31, // Return address for subroutine
|
||||
|
||||
_LO,
|
||||
_HI,
|
||||
|
||||
allregs,
|
||||
} RegVar_t;
|
||||
|
||||
extern uint32 _registers[allregs];
|
||||
|
||||
#endif // R300A_REGS_H
|
4
src/run.bat
Normal file
4
src/run.bat
Normal file
@ -0,0 +1,4 @@
|
||||
debug\dump_music.exe music_d1fin.bin
|
||||
debug\dump_music.exe music_d2dem.bin
|
||||
debug\dump_music.exe music_d2fin.bin
|
||||
pause
|
Loading…
Reference in New Issue
Block a user