Merge branch 'master' of github.com:gtamodding/re3
This commit is contained in:
commit
5c474b9c68
22
README.md
22
README.md
|
@ -1,8 +1,8 @@
|
||||||
# re3
|
# re3
|
||||||
[![Build status](https://ci.appveyor.com/api/projects/status/hyiwgegks122h8jg?svg=true)](https://ci.appveyor.com/project/aap/re3/branch/master)
|
[![Build status](https://ci.appveyor.com/api/projects/status/hyiwgegks122h8jg?svg=true)](https://ci.appveyor.com/project/aap/re3/branch/master)
|
||||||
<a href="https://discord.gg/jYpXxTm"><img src="https://img.shields.io/badge/discord-join-7289DA.svg?logo=discord&longCache=true&style=flat" /></a>
|
<a href="https://discord.gg/jYpXxTm"><img src="https://img.shields.io/badge/discord-join-7289DA.svg?logo=discord&longCache=true&style=flat" /></a>
|
||||||
<a href="https://ci.appveyor.com/api/projects/aap/re3/artifacts/bin/Debug/re3.dll?branch=master&job=Configuration%3A+Debug"><img src="https://img.shields.io/badge/download-debug-9cf.svg" /></a>
|
<a href="https://ci.appveyor.com/api/projects/aap/re3/artifacts/bin/Debug/re3.exe?branch=master&job=Configuration%3A+Debug"><img src="https://img.shields.io/badge/download-debug-9cf.svg" /></a>
|
||||||
<a href="https://ci.appveyor.com/api/projects/aap/re3/artifacts/bin/Release/re3.dll?branch=master&job=Configuration%3A+Release"><img src="https://img.shields.io/badge/download-release-blue.svg" /></a>
|
<a href="https://ci.appveyor.com/api/projects/aap/re3/artifacts/bin/Release/re3.exe?branch=master&job=Configuration%3A+Release"><img src="https://img.shields.io/badge/download-release-blue.svg" /></a>
|
||||||
|
|
||||||
## Intro
|
## Intro
|
||||||
|
|
||||||
|
@ -12,23 +12,18 @@ such that we have a working game at all times.
|
||||||
|
|
||||||
## How can I try it?
|
## How can I try it?
|
||||||
|
|
||||||
- re3 requires game assets to work, so you need to own a copy of GTA III.
|
- re3 requires game assets to work, so you **must** own a copy of GTA III.
|
||||||
- Since re3 is a DLL that works with original GTA III for now, you need Simple DLL Loader. You can get it [here](https://github.com/aap/simpledllloader).
|
|
||||||
- Build re3 or download it from one of the above links (Debug or Release).
|
- Build re3 or download it from one of the above links (Debug or Release).
|
||||||
- Make sure you included the re3 in `plugins.cfg` or `dlls.cfg`.
|
- (Optional) If you want to use optional features like Russian language or menu map, copy the files in /gamefiles folder to your game root folder.
|
||||||
|
- Move re3.exe to GTA 3 directory and run it.
|
||||||
|
|
||||||
![#ffa500](https://placehold.it/15/ffa500/000000?text=+) **Notice if you will build it**
|
> :information_source: **Rendering engine** re3 uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of re3, but you also can use LIBRW enviorenment variable to specify path to your own librw.
|
||||||
|
|
||||||
There are various settings at the very bottom of `config.h`, you may want to take a look there. i.e. FIX_BUGS define fixes the bugs we've come across.
|
> :warning: **Notice for builders** There are various settings at the very bottom of `config.h`, you may want to take a look there. i.e. FIX_BUGS define fixes the bugs we've come across.
|
||||||
|
|
||||||
https://github.com/GTAmodding/re3/tree/master/src/core/config.h
|
https://github.com/GTAmodding/re3/tree/master/src/core/config.h
|
||||||
|
|
||||||
## I want to contribute, where should I start?
|
## Contributing
|
||||||
|
|
||||||
A good approach is to start at the fringes of the code base,
|
|
||||||
i.e. classes that don't depend on code that we don't have reversed yet.
|
|
||||||
If a function uses only few unreversed functions that would be inconvenient
|
|
||||||
to reverse at the time, calling the original functions is acceptable.
|
|
||||||
|
|
||||||
### Unreversed / incomplete classes (at least the ones we know)
|
### Unreversed / incomplete classes (at least the ones we know)
|
||||||
The following classes have only unused or practically unused code left:
|
The following classes have only unused or practically unused code left:
|
||||||
|
@ -150,4 +145,5 @@ Here you can find a list of variables that you might need to set in windows:
|
||||||
```
|
```
|
||||||
"GTA_III_RE_DIR" * path to "gta3_re" game folder usually where this plugin run.
|
"GTA_III_RE_DIR" * path to "gta3_re" game folder usually where this plugin run.
|
||||||
"GTA_III_DIR" * path to "GTAIII" game folder.
|
"GTA_III_DIR" * path to "GTAIII" game folder.
|
||||||
|
"LIBRW" * path to LIBRW.
|
||||||
```
|
```
|
||||||
|
|
19
premake5.lua
19
premake5.lua
|
@ -1,4 +1,4 @@
|
||||||
Librw = os.getenv("LIBRW")
|
Librw = os.getenv("LIBRW") or "librw"
|
||||||
|
|
||||||
workspace "re3"
|
workspace "re3"
|
||||||
configurations { "Debug", "Release", "ReleaseFH", "DebugRW", "ReleaseRW" }
|
configurations { "Debug", "Release", "ReleaseFH", "DebugRW", "ReleaseRW" }
|
||||||
|
@ -54,9 +54,8 @@ workspace "re3"
|
||||||
filter "configurations:Debug or Release"
|
filter "configurations:Debug or Release"
|
||||||
files { "src/fakerw/*.*" }
|
files { "src/fakerw/*.*" }
|
||||||
includedirs { "src/fakerw" }
|
includedirs { "src/fakerw" }
|
||||||
includedirs { "librw" }
|
includedirs { Librw }
|
||||||
includedirs { "librw/src" }
|
libdirs { path.join(Librw, "lib/win-x86-d3d9/%{cfg.buildcfg}") }
|
||||||
libdirs { path.join("librw", "lib/win-x86-d3d9/%{cfg.buildcfg}") }
|
|
||||||
links { "rw", "d3d9" }
|
links { "rw", "d3d9" }
|
||||||
filter {}
|
filter {}
|
||||||
|
|
||||||
|
@ -107,31 +106,33 @@ project "re3"
|
||||||
defines { "DEBUG", "LIBRW", "RW_D3D9" }
|
defines { "DEBUG", "LIBRW", "RW_D3D9" }
|
||||||
staticruntime "off"
|
staticruntime "off"
|
||||||
symbols "Full"
|
symbols "Full"
|
||||||
setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "")
|
setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "")
|
||||||
|
|
||||||
filter "configurations:Release"
|
filter "configurations:Release"
|
||||||
defines { "NDEBUG", "LIBRW", "RW_D3D9" }
|
defines { "NDEBUG", "LIBRW", "RW_D3D9" }
|
||||||
optimize "On"
|
optimize "On"
|
||||||
staticruntime "off"
|
staticruntime "off"
|
||||||
symbols "Full"
|
symbols "Full"
|
||||||
setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "")
|
setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "")
|
||||||
|
|
||||||
filter "configurations:ReleaseFH"
|
filter "configurations:ReleaseFH"
|
||||||
defines { "NDEBUG" }
|
defines { "NDEBUG" }
|
||||||
symbols "Full"
|
symbols "Full"
|
||||||
optimize "off"
|
optimize "off"
|
||||||
staticruntime "on"
|
staticruntime "on"
|
||||||
setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "")
|
setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "")
|
||||||
|
|
||||||
filter "configurations:DebugRW"
|
filter "configurations:DebugRW"
|
||||||
defines { "DEBUG" }
|
defines { "DEBUG" }
|
||||||
staticruntime "on"
|
staticruntime "on"
|
||||||
symbols "On"
|
symbols "On"
|
||||||
setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "")
|
setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "")
|
||||||
|
linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text"
|
||||||
|
|
||||||
filter "configurations:ReleaseRW"
|
filter "configurations:ReleaseRW"
|
||||||
defines { "NDEBUG" }
|
defines { "NDEBUG" }
|
||||||
optimize "On"
|
optimize "On"
|
||||||
staticruntime "on"
|
staticruntime "on"
|
||||||
setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "")
|
setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "")
|
||||||
|
linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text"
|
||||||
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
#ifndef LIBRW
|
|
||||||
#include "common.h"
|
|
||||||
|
|
||||||
#include "rwcore.h"
|
|
||||||
#include "rpworld.h"
|
|
||||||
#include "rpmatfx.h"
|
|
||||||
#include "rpskin.h"
|
|
||||||
#include "rphanim.h"
|
|
||||||
#include "rtbmp.h"
|
|
||||||
|
|
||||||
typedef RwV3d *(*rwVectorsMultFn) (RwV3d * pointsOut,
|
|
||||||
const RwV3d * pointsIn,
|
|
||||||
RwInt32 numPoints,
|
|
||||||
const RwMatrix * matrix);
|
|
||||||
|
|
||||||
#ifndef RWLIBS
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
void* _rwFrameOpen(void* instance, RwInt32 offset, RwInt32 size);
|
|
||||||
void* _rwFrameClose(void* instance, RwInt32 offset, RwInt32 size);
|
|
||||||
RwFrame* _rwFrameCloneAndLinkClones(RwFrame* root);
|
|
||||||
RwFrame* _rwFramePurgeClone(RwFrame* root);
|
|
||||||
RwBool RwFrameDirty(RwFrame const* frame);
|
|
||||||
void _rwFrameInit(RwFrame* frame);
|
|
||||||
RwBool _rwMatrixSetMultFn(rwMatrixMultFn multMat);
|
|
||||||
void* _rwMatrixClose(void* instance, RwInt32 offset, RwInt32 size);
|
|
||||||
void* _rwMatrixOpen(void* instance, RwInt32 offset, RwInt32 size);
|
|
||||||
RwBool _rwVectorSetMultFn(rwVectorMultFn multPoint, rwVectorsMultFn multPoints, rwVectorMultFn multVector, rwVectorsMultFn multVectors);
|
|
||||||
void* _rwVectorClose(void* instance, RwInt32 offset, RwInt32 size);
|
|
||||||
void* _rwVectorOpen(void* instance, RwInt32 offset, RwInt32 size);
|
|
||||||
RwBool _rwPluginRegistryOpen();
|
|
||||||
RwBool _rwPluginRegistryClose();
|
|
||||||
|
|
||||||
RwInt32 _rwD3D8FindCorrectRasterFormat(RwRasterType type, RwInt32 flags);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
Loading…
Reference in New Issue