z tego co pamiętam obiłem się o te aplikacje, ale były to początki, interesowało mnie też Delphi
Na stronie Moomappera - dawnego programiku do tworzenia map jest kod źródłowy tego programu, obecne już odbiegają od tej wersji. Ja tam sobie przetłumaczyłem program, lekko modyfikowałem :p
moomapper
/////////////////////////////////////////////////////////////////////
//
// exceptions.h
//
// A better exception handler for GTA:3 and GTA:VC
// By kyeman and eAi (2004)
//
/////////////////////////////////////////////////////////////////////
// Instruction overwrites.
#define GTA3_OPCODEINT_HOOK_INSTRUCTIONCODE 0xFF,0x25,0x5C,0x95,0x43,0x00
#define GTA3_EXCEPTBOX_HOOK_INSTRUCTIONCODE 0xFF,0x25,0xBA,0x95,0x43,0x00
#define GTA3_GETPARAMETERS_HOOK_INSTRUCTIONCODE 0xFF,0x25,0x43,0x96,0x43,0x00 // 0x439643
#define OPCODEINT_HOOK_INSTRUCTIONCODE 0xFF,0x25,0x3C,0xFC,0x44,0x00
#define EXCEPTBOX_HOOK_INSTRUCTIONCODE 0xFF,0x25,0x6A,0xFC,0x44,0x00
#define GETPARAMETERS_HOOK_INSTRUCTIONCODE 0xFF,0x25,0x69,0xFD,0x44,0x00 // 0x44FD69
#define HUGE_STR_BUFFER 8192
#define BIG_STR_BUFFER 1024
#define LITTLE_STR_BUFFER 256
#define SCRIPT_LOG_SIZE 256 // number of scm instructions saved
#define SCM_PARAM_COUNT 15
#define SCM_GLOBALS_COUNT 50
#define UNKNOWN_VERSION 0
#define VICE_10 1
#define VICE_11 2
#define GTA3_10 3
#define GTA3_11 4
enum _DATATYPES {
DATA_TYPE_DWORD = 1,
DATA_TYPE_VARIABLE = 2,
DATA_TYPE_WORD = 3,
DATA_TYPE_BYTE = 4,
DATA_TYPE_WORD_2 = 5,
DATA_TYPE_FLOAT = 6
};
/////////////////////////////////////////////////////////////////////
// struct defs
// found @ gtaforums.com
typedef struct _GAME_SCRIPT_THREAD // 0x88 bytes total.
{
void *pNext; // 0x00
void *pPrev; // 0x04
char strName[8]; // 0x08
DWORD dwScriptIP; // 0x10
BYTE xUnknown14[101]; // 0x14 (0x65 bytes unknown)
BYTE nJumpFlag; // 0x79
BYTE xUnknown7A[2]; // 0x7a (0x2 bytes unknown)
DWORD dwWaitUntil; // 0x7C
BYTE xUnknown7D[8]; // 0x80 (0x0A bytes unknown)
} *PGAME_SCRIPT_THREAD,GAME_SCRIPT_THREAD;
typedef struct _SCRIPT_LOG
{
DWORD dwScriptIP;
DWORD dwParameterCount;
DWORD dwParameters[SCM_PARAM_COUNT];
DWORD dwGlobalVariables[SCM_GLOBALS_COUNT];
} *PSCRIPT_LOG,SCRIPT_LOG;
typedef struct _OPCODE_DEF
{
DWORD dwParameterCount;
CHAR bName[50];
} *POPCODE_DEF,OPCODE_DEF;
///////////////////////////////////////////////////////////////////////
// forwards
BOOL CALLBACK GuiDlgProcMain( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
VOID InstallOpcodeInterpreterHook();
VOID InstallExceptionBoxHook();
VOID InstallOpcodeInterpreterHookGta3();
VOID InstallExceptionBoxHookGta3();
BOOL DoesOpcodeMatchIniOpcode(PCHAR scm_ini_line, WORD opcode);
int DetermineGTAVersion();
VOID GetOpcodeInfo(PCHAR ret_buffer);
VOID GetOpcodeParameters(PSCRIPT_LOG pScripLog, DWORD dwParamCount, PCHAR ret_buffer);
VOID OutputOpcodeFromSIP(PSCRIPT_LOG pScripLog, PCHAR ret_buffer);
BOOL GetOpcodeName(WORD dwOpcode, PCHAR ret_buffer);
VOID LoadOpcodes();
///////////////////////////////////////////////////////////////////////
resource.h też jednak mam:
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by resource.rc
//
#define IDI_ICON1 102
#define IDD_EXCEPTION_DIALOG 103
#define IDC_OK_BUTTON 1007
#define IDC_ERROR_AREA 1008
#define IDC_OK_DEBUG 1009
#define IDC_ERROR_AREA2 1010
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 104
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1014
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif