Merge branch 'master' of github.com:gtamodding/re3

This commit is contained in:
aap 2020-04-17 21:45:25 +02:00
commit 5c474b9c68
3 changed files with 19 additions and 62 deletions

View File

@ -1,8 +1,8 @@
# re3
[![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://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/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/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.exe?branch=master&job=Configuration%3A+Release"><img src="https://img.shields.io/badge/download-release-blue.svg" /></a>
## Intro
@ -12,23 +12,18 @@ such that we have a working game at all times.
## How can I try it?
- re3 requires game assets to work, so you need to 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).
- re3 requires game assets to work, so you **must** own a copy of GTA III.
- 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
## I want to contribute, where should I start?
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.
## Contributing
### Unreversed / incomplete classes (at least the ones we know)
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_DIR" * path to "GTAIII" game folder.
"LIBRW" * path to LIBRW.
```

View File

@ -1,4 +1,4 @@
Librw = os.getenv("LIBRW")
Librw = os.getenv("LIBRW") or "librw"
workspace "re3"
configurations { "Debug", "Release", "ReleaseFH", "DebugRW", "ReleaseRW" }
@ -54,9 +54,8 @@ workspace "re3"
filter "configurations:Debug or Release"
files { "src/fakerw/*.*" }
includedirs { "src/fakerw" }
includedirs { "librw" }
includedirs { "librw/src" }
libdirs { path.join("librw", "lib/win-x86-d3d9/%{cfg.buildcfg}") }
includedirs { Librw }
libdirs { path.join(Librw, "lib/win-x86-d3d9/%{cfg.buildcfg}") }
links { "rw", "d3d9" }
filter {}
@ -107,31 +106,33 @@ project "re3"
defines { "DEBUG", "LIBRW", "RW_D3D9" }
staticruntime "off"
symbols "Full"
setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "")
setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "")
filter "configurations:Release"
defines { "NDEBUG", "LIBRW", "RW_D3D9" }
optimize "On"
staticruntime "off"
symbols "Full"
setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "")
setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "")
filter "configurations:ReleaseFH"
defines { "NDEBUG" }
symbols "Full"
optimize "off"
staticruntime "on"
setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "")
setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "")
filter "configurations:DebugRW"
defines { "DEBUG" }
staticruntime "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"
defines { "NDEBUG" }
optimize "On"
staticruntime "on"
setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "")
setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "")
linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text"

View File

@ -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