Initial public release of rem-essentials
This commit is contained in:
+178
@@ -0,0 +1,178 @@
|
||||
#pragma once
|
||||
|
||||
#include "Common.h"
|
||||
|
||||
#define PLAYER_SYSTEM *((PUINT) 0x673354)
|
||||
#define CHECK_FOR_SYNC_CALL_ADDR 0x541602
|
||||
#define PUSH_SHIP_POS_SYNC_CHECK_ADDR 0x5415FF
|
||||
#define POST_INIT_DEALLOC_CALL_ADDR 0x54B8B9
|
||||
#define OBJ_UPDATE_CALL_ADDR 0x54167C
|
||||
#define WAYPOINT_CHECK_CALL_ADDR 0x4F4141
|
||||
#define INIT_NN_ELEMENTS_CALL_ADDR 0x5D4A80
|
||||
#define TEST_RESOLUTIONS_ADDR 0x4B2440
|
||||
|
||||
// The buffer length is denoted in WORDs.
|
||||
#define FL_BUFFER_1 ((LPWSTR) 0x66DC60)
|
||||
#define FL_BUFFER_2 ((LPWSTR) 0x66FC60)
|
||||
#define FL_BUFFER_LEN *((PUINT) 0x6119F8)
|
||||
#define FL_RESOURCES_HANDLE *((PDWORD) 0x67ECA8)
|
||||
|
||||
#define UNKNOWN_OBJECT_IDS 1191
|
||||
#define WAYPOINT_IDS 1090
|
||||
#define MISSION_WAYPOINT_IDS 1091
|
||||
|
||||
#define KNOW_VISIT_FLAG (1)
|
||||
#define LAND_VISIT_FLAG (1 << 1)
|
||||
#define COMMODITY_DEALER_VISIT_FLAG (1 << 2)
|
||||
#define EQUIPMENT_DEALER_VISIT_FLAG (1 << 3)
|
||||
#define SHIP_DEALER_VISIT_FLAG (1 << 4)
|
||||
|
||||
// Time elapsed since startup in miliseconds
|
||||
#define FL_TIME_ELAPSED_MS (*(double*) 0x667D38)
|
||||
|
||||
// System time in miliseconds
|
||||
#define TIMING_DELTA_TICK_COUNT (*(PDWORD) 0x667D14)
|
||||
#define TIME_GET_TIME_VAL (*(PDWORD) 0x667D20)
|
||||
|
||||
struct Waypoint
|
||||
{
|
||||
Vector pos;
|
||||
UINT system;
|
||||
UINT target;
|
||||
int waypointNumber;
|
||||
};
|
||||
|
||||
struct NavMapObj
|
||||
{
|
||||
UINT type;
|
||||
};
|
||||
|
||||
struct NeuroNetNavMap
|
||||
{
|
||||
NavMapObj* GetHighlightedObject_Hook(DWORD unk1, DWORD unk2);
|
||||
NavMapObj* GetHighlightedObject(DWORD unk1, DWORD unk2);
|
||||
};
|
||||
|
||||
struct AudioOption
|
||||
{
|
||||
UINT idsName;
|
||||
UINT idsTooltip;
|
||||
UINT defaultVolume;
|
||||
DWORD x0C, x10, x14;
|
||||
};
|
||||
|
||||
#define NN_PREFERENCES_NEW_DATA 0x98C
|
||||
|
||||
// 0x330 = current selected width
|
||||
// 0x8b8 = current active width (int)
|
||||
// 0x8cc = start of resolution array (10 * 4 * 3 bytes)
|
||||
// 0x8d4 = start of resolution array + 0x8 (points to the bpp of the first element)
|
||||
// 0x944 = array of 10 bytes that contains flags of whether the resolution index is supported (1 = supported, 0 = unsupported)
|
||||
// 0x94e = unallocated word (2 bytes)
|
||||
// 0x950 = amount of supported resolutions (integer)
|
||||
// 0x954 = array of 4 * 10 bytes that contains the indices of the resolutions in the selection menu (-1 is unsupported resolution)
|
||||
struct NN_Preferences
|
||||
{
|
||||
BYTE x00[0x528];
|
||||
AudioOption* audioOptions; // pointer to array of audio info from up to 14 UI scroll elements
|
||||
BYTE x52C[0x128];
|
||||
PVOID scrollElements[14]; // 0x654, array of pointers to 14 volume scroll elements (there's more but we only need up to 14)
|
||||
BYTE x68C[0x2C4];
|
||||
UINT supportedResAmount;
|
||||
BYTE x954[0x28];
|
||||
bool unk_x97C;
|
||||
BYTE x97D[0x3];
|
||||
UINT selectedHeight;
|
||||
UINT activeHeight;
|
||||
bool* resSupportedArr; // Points to new version of 0x944
|
||||
BYTE newData;
|
||||
|
||||
bool InitElements_Hook(DWORD unk1, DWORD unk2);
|
||||
bool SetResolution_Active_Hook(UINT width, DWORD unk);
|
||||
bool SetResolution_Selected_Hook(UINT width, DWORD unk);
|
||||
void TestResolutions_Hook(DWORD unk);
|
||||
void VolumeSliderAdjustEnd_Hook(PVOID scrollElement);
|
||||
|
||||
bool SetResolution(UINT width, DWORD unk, UINT height);
|
||||
};
|
||||
|
||||
void StopSound(BYTE soundId);
|
||||
void StartSound(BYTE soundId);
|
||||
|
||||
Waypoint* GetWaypoint(int index);
|
||||
|
||||
struct WaypointWatcher
|
||||
{
|
||||
bool GetCurrentWaypointInfo(bool& isPlayerWaypoint, int& waypointIndex);
|
||||
};
|
||||
|
||||
#define WAYPOINT_WATCHER (*((WaypointWatcher**) 0x674BC8))
|
||||
|
||||
IObjRW* GetPlayerIObjRW();
|
||||
CShip* GetPlayerShip();
|
||||
CShip* GetPlayerShipSafe();
|
||||
|
||||
bool AreIObjRWsInSameGroup(const IObjRW& o1, const IObjRW& o2);
|
||||
bool AreShipsInSameGroup(const CShip* ship1, const CShip* ship2);
|
||||
|
||||
bool IsSimpleUnvisited(const CSimple& simple);
|
||||
BYTE GetSimpleVisitedValue(const CSimple& simple);
|
||||
UINT GetIdsForUnvisitedSimple(const CSimple& simple);
|
||||
|
||||
UINT GetCShipOrCEqObjName(const CEqObj &eqObj);
|
||||
|
||||
UINT GetFlStringFromResources(DWORD resourcesHandle, UINT ids, LPWSTR buffer, UINT bufferLen);
|
||||
|
||||
inline UINT GetFlString(UINT ids, LPWSTR buffer, UINT bufferLen)
|
||||
{
|
||||
return GetFlStringFromResources(FL_RESOURCES_HANDLE, ids, buffer, bufferLen);
|
||||
}
|
||||
|
||||
class RenderDisplayList
|
||||
{};
|
||||
|
||||
void AppendXmlWsToRdlEx(LPCWSTR ws, UINT wsLen, RenderDisplayList& rdl, DWORD flags);
|
||||
|
||||
inline void AppendXmlWsToRdl(LPCWSTR ws, RenderDisplayList& rdl)
|
||||
{
|
||||
AppendXmlWsToRdlEx(ws, wcslen(ws), rdl, 0);
|
||||
}
|
||||
|
||||
#define SHIP_TRADER_SHIP_AMOUNT 3
|
||||
#define SHIP_TRADER_PLAYER_SHIP_INDEX -2
|
||||
#define SHIP_TRADER_NONE_SELECTED_INDEX -1
|
||||
|
||||
// 0x370 = ShipTrader3DShip*
|
||||
struct NN_ShipTrader
|
||||
{
|
||||
BYTE x00[0x3CC];
|
||||
int shipCount; // 0x3CC
|
||||
int selectedShipIndex; // 0x3D0
|
||||
BYTE x3D4[0x24];
|
||||
float playerReputationWithBaseOwners; // 0x3F8
|
||||
int shipStatuses[SHIP_TRADER_SHIP_AMOUNT]; // 0x3FC, basically enums for available, rep too low, or level too low
|
||||
BYTE x408[0x40];
|
||||
int shipRepPercentages[SHIP_TRADER_SHIP_AMOUNT]; // 0x448
|
||||
|
||||
void StoreShipRepRequirement(int shipIndex, float repRequirement);
|
||||
LPWSTR PrintFmtShipRepRequirement();
|
||||
PBYTE SwapShipRepPercentages(PBYTE rhsShipStatusAddr);
|
||||
};
|
||||
|
||||
void ExpandNNShipTraderObjMemory();
|
||||
|
||||
struct FLCursor
|
||||
{
|
||||
float xPos, yPos, distFromZero;
|
||||
};
|
||||
|
||||
struct ServerFilterDialog
|
||||
{
|
||||
bool OnFrameUpdate_Hook();
|
||||
};
|
||||
|
||||
double GetDeltaTime();
|
||||
void UpdateDeltaTime();
|
||||
void UpdateDeltaTimeAndUpTime();
|
||||
|
||||
UINT GetNumOfActiveMissionObjectives();
|
||||
Reference in New Issue
Block a user