mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-28 18:51:16 +00:00
Fix gitignore
This commit is contained in:
parent
5d6286afe0
commit
14f5b9cdd0
2
.gitignore
vendored
2
.gitignore
vendored
@ -14,7 +14,7 @@ env.bak/
|
||||
venv.bak/
|
||||
ISLE.EXE
|
||||
LEGO1.DLL
|
||||
build/
|
||||
/build/
|
||||
*.swp
|
||||
LEGO1PROGRESS.*
|
||||
ISLEPROGRESS.*
|
||||
|
||||
13
LEGO1/lego/legoomni/src/build/buildingentity.cpp
Normal file
13
LEGO1/lego/legoomni/src/build/buildingentity.cpp
Normal file
@ -0,0 +1,13 @@
|
||||
#include "buildingentity.h"
|
||||
|
||||
// STUB: LEGO1 0x10014e20
|
||||
BuildingEntity::BuildingEntity()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10015030
|
||||
BuildingEntity::~BuildingEntity()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
12
LEGO1/lego/legoomni/src/build/dunebuggy.cpp
Normal file
12
LEGO1/lego/legoomni/src/build/dunebuggy.cpp
Normal file
@ -0,0 +1,12 @@
|
||||
#include "dunebuggy.h"
|
||||
|
||||
#include "decomp.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(DuneBuggy, 0x16c);
|
||||
|
||||
// FUNCTION: LEGO1 0x10067bb0
|
||||
DuneBuggy::DuneBuggy()
|
||||
{
|
||||
this->m_unk0x13c = 25.0;
|
||||
this->m_unk0x164 = 1.0;
|
||||
}
|
||||
370
LEGO1/lego/legoomni/src/build/helicopter.cpp
Normal file
370
LEGO1/lego/legoomni/src/build/helicopter.cpp
Normal file
@ -0,0 +1,370 @@
|
||||
#include "helicopter.h"
|
||||
|
||||
#include "act1state.h"
|
||||
#include "act3.h"
|
||||
#include "isle.h"
|
||||
#include "legoanimationmanager.h"
|
||||
#include "legocontrolmanager.h"
|
||||
#include "legogamestate.h"
|
||||
#include "legoomni.h"
|
||||
#include "legoutil.h"
|
||||
#include "legoworld.h"
|
||||
#include "mxtransitionmanager.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(Helicopter, 0x230)
|
||||
|
||||
// FUNCTION: LEGO1 0x10001e60
|
||||
Helicopter::Helicopter()
|
||||
{
|
||||
m_unk0x13c = 60;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10003230
|
||||
Helicopter::~Helicopter()
|
||||
{
|
||||
ControlManager()->Unregister(this);
|
||||
IslePathActor::Destroy(TRUE);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100032c0
|
||||
MxResult Helicopter::Create(MxDSObject& p_dsObject)
|
||||
{
|
||||
MxResult result = IslePathActor::Create(p_dsObject);
|
||||
LegoWorld* world = GetCurrentWorld();
|
||||
SetWorld(world);
|
||||
if (world->IsA("Act3")) {
|
||||
((Act3*) GetWorld())->SetUnkown420c(this);
|
||||
}
|
||||
world = GetWorld();
|
||||
if (world)
|
||||
world->VTable0x58(this);
|
||||
GetState();
|
||||
return result;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10003320
|
||||
void Helicopter::GetState()
|
||||
{
|
||||
m_state = (HelicopterState*) GameState()->GetState("HelicopterState");
|
||||
if (!m_state)
|
||||
m_state = (HelicopterState*) GameState()->CreateState("HelicopterState");
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10003360
|
||||
void Helicopter::VTable0xe4()
|
||||
{
|
||||
if (!GameState()->GetUnknown10()) {
|
||||
VTable0xe8(0x28, TRUE, 7);
|
||||
}
|
||||
IslePathActor::VTable0xe4();
|
||||
if (!GameState()->GetUnknown10()) {
|
||||
GameState()->SetUnknown424(0x3c);
|
||||
if (GetCurrentVehicle()) {
|
||||
if (GetCurrentVehicle()->IsA("IslePathActor")) {
|
||||
((IslePathActor*) GetCurrentVehicle())->VTable0xe8(0x37, TRUE, 7);
|
||||
}
|
||||
}
|
||||
}
|
||||
m_state->SetUnknown8(0);
|
||||
FUN_1003ee00(m_script, 0x16);
|
||||
FUN_1003ee00(m_script, 0x17);
|
||||
FUN_1003ee00(m_script, 0x18);
|
||||
FUN_1003ee00(m_script, 0x19);
|
||||
FUN_1003ee00(m_script, 0x1a);
|
||||
FUN_1003ee00(m_script, 0x1b);
|
||||
FUN_1003ee00(m_script, 0x1c);
|
||||
FUN_1003ee00(m_script, 0x1d);
|
||||
FUN_1003ee00(m_script, 0x1e);
|
||||
FUN_1003ee00(m_script, 0x1f);
|
||||
AnimationManager()->FUN_1005f6d0(TRUE);
|
||||
ControlManager()->Unregister(this);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10003480
|
||||
MxU32 Helicopter::VTable0xcc()
|
||||
{
|
||||
if (!FUN_1003ef60())
|
||||
return 1;
|
||||
if (!m_world)
|
||||
m_world = GetCurrentWorld();
|
||||
AnimationManager()->FUN_1005f6d0(FALSE);
|
||||
if (GetCurrentVehicle()) {
|
||||
if (GetCurrentVehicle()->VTable0x60() != GameState()->GetUnknownC()) {
|
||||
GetCurrentVehicle()->VTable0xe4();
|
||||
}
|
||||
}
|
||||
switch (GameState()->GetUnknown10()) {
|
||||
case 0:
|
||||
m_script = *g_isleScript;
|
||||
AnimationManager()->FUN_10064670(FALSE);
|
||||
VTable0xe8(0x29, TRUE, 7);
|
||||
((Isle*) GetCurrentWorld())->SetUnknown13c(0x3c);
|
||||
FUN_10015820(1, 0);
|
||||
TransitionManager()->StartTransition(MxTransitionManager::PIXELATION, 50, FALSE, TRUE);
|
||||
SetUnknownDC(4);
|
||||
PlayMusic(9);
|
||||
break;
|
||||
case 1:
|
||||
m_script = *g_act2mainScript;
|
||||
break;
|
||||
case 2:
|
||||
m_script = *g_act3Script;
|
||||
break;
|
||||
}
|
||||
VTable0xe0();
|
||||
InvokeAction(ExtraActionType_start, m_script, 0x15, NULL);
|
||||
GetCurrentAction().SetObjectId(-1);
|
||||
ControlManager()->Register(this);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100035e0
|
||||
MxU32 Helicopter::VTable0xd4(MxType17NotificationParam& p_param)
|
||||
{
|
||||
MxU32 ret = 0;
|
||||
MxAtomId script;
|
||||
switch (GameState()->GetUnknown10()) {
|
||||
case 0:
|
||||
script = *g_isleScript;
|
||||
break;
|
||||
case 1:
|
||||
script = *g_act2mainScript;
|
||||
break;
|
||||
case 2:
|
||||
script = *g_act3Script;
|
||||
break;
|
||||
}
|
||||
if (p_param.GetUnknown28() == 1) {
|
||||
switch (p_param.GetUnknown20()) {
|
||||
case 0x17:
|
||||
if (*g_act3Script == script) {
|
||||
((Act3*) GetCurrentWorld())->SetUnkown4270(2);
|
||||
TransitionManager()->StartTransition(MxTransitionManager::PIXELATION, 50, FALSE, FALSE);
|
||||
}
|
||||
else if (m_state->GetUnkown8() != 0)
|
||||
break;
|
||||
VTable0xe4();
|
||||
GameState()->SetUnknown424(0x42);
|
||||
ret = 1;
|
||||
break;
|
||||
case 0x18: {
|
||||
if (*g_act3Script == script)
|
||||
break;
|
||||
Act1State* state = (Act1State*) GameState()->GetState("Act1State");
|
||||
if (m_state->GetUnkown8() == 0) {
|
||||
state->SetUnknown18(4);
|
||||
m_state->SetUnknown8(1);
|
||||
m_world->FUN_1001fc80(this);
|
||||
InvokeAction(ExtraActionType_start, script, 0x20, NULL);
|
||||
SetUnknownDC(0);
|
||||
}
|
||||
ret = 1;
|
||||
break;
|
||||
}
|
||||
case 0x19:
|
||||
if (*g_act3Script == script)
|
||||
break;
|
||||
if (m_state->GetUnkown8() == 2) {
|
||||
m_state->SetUnknown8(3);
|
||||
m_world->FUN_1001fc80(this);
|
||||
InvokeAction(ExtraActionType_start, script, 0x21, NULL);
|
||||
SetUnknownDC(4);
|
||||
}
|
||||
ret = 1;
|
||||
break;
|
||||
case 0x1a:
|
||||
if (*g_act3Script != script)
|
||||
break;
|
||||
ret = 1;
|
||||
/* fall through */
|
||||
case 0x1b:
|
||||
if (*g_act3Script != script)
|
||||
break;
|
||||
if (m_world && m_world->GetCamera()) {
|
||||
Vector3Data loc, dir, lookat;
|
||||
loc.CopyFrom(m_world->GetCamera()->FUN_100127f0());
|
||||
dir.CopyFrom(m_world->GetCamera()->FUN_100128a0());
|
||||
lookat = dir;
|
||||
float scale = 3;
|
||||
lookat.Mul(scale);
|
||||
lookat.Add(&loc);
|
||||
Vector3Data v68, v7c, v90(0, 1, 0), va4;
|
||||
v68.CopyFrom(m_world->GetCamera()->FUN_10012740());
|
||||
va4.EqualsCross(v68, dir);
|
||||
v7c.EqualsCross(va4, v90);
|
||||
if (ret)
|
||||
if (m_world->FUN_100727e0(m_unk0x138, loc, dir, v7c))
|
||||
break;
|
||||
else if (m_world->FUN_10072980(m_unk0x138, loc, dir, v7c))
|
||||
break;
|
||||
}
|
||||
ret = 1;
|
||||
break;
|
||||
case 0x1c:
|
||||
if (GameState()->GetUnknown10() == 0) {
|
||||
((Isle*) GetCurrentWorld())->SetUnknown13c(2);
|
||||
TransitionManager()->StartTransition(MxTransitionManager::PIXELATION, 50, FALSE, FALSE);
|
||||
VTable0xe4();
|
||||
}
|
||||
ret = 1;
|
||||
break;
|
||||
case 0x1d:
|
||||
ret = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10003c20
|
||||
MxU32 Helicopter::VTable0xd8(MxType18NotificationParam& p_param)
|
||||
{
|
||||
switch (m_state->GetUnkown8()) {
|
||||
case 1: {
|
||||
if (GameState()->GetUnknown10() == 0) {
|
||||
((Act1State*) GameState()->GetState("Act1State"))->SetUnknown18(4);
|
||||
VTable0xe8(0x2a, TRUE, 7);
|
||||
}
|
||||
else
|
||||
VTable0xe8(0x31, TRUE, 7);
|
||||
m_state->SetUnknown8(2);
|
||||
Matrix4Data mat;
|
||||
mat.SetIdentity();
|
||||
Matrix4 mat2 = mat.GetMatrix();
|
||||
float s = sin(0.5235987901687622); // PI / 6, 30 deg
|
||||
float c = cos(0.5235987901687622); // PI / 6, 30 deg
|
||||
for (MxS32 i = 0; i < 4; i++) {
|
||||
mat.GetMatrix()[i][1] = mat2[i][1] * c - mat2[i][2] * s;
|
||||
mat.GetMatrix()[i][2] = mat2[i][2] * c + mat2[i][1] * s;
|
||||
}
|
||||
Vector3Impl at(mat.GetMatrix()[3]), dir(mat.GetMatrix()[2]), up(mat.GetMatrix()[1]);
|
||||
m_world->GetCamera()->LookAt(at, dir, up);
|
||||
FUN_10010c30();
|
||||
break;
|
||||
}
|
||||
case 3: {
|
||||
Matrix4Data mat;
|
||||
mat.SetIdentity();
|
||||
Vector3Impl at(mat.GetMatrix()[3]), dir(mat.GetMatrix()[2]), up(mat.GetMatrix()[1]);
|
||||
at[1] = 1.25;
|
||||
m_world->GetCamera()->LookAt(at, dir, up);
|
||||
if (GameState()->GetUnknown10() == 0) {
|
||||
((Act1State*) GameState()->GetState("Act1State"))->SetUnknown18(0);
|
||||
VTable0xe8(0x29, TRUE, 7);
|
||||
}
|
||||
else
|
||||
VTable0xe8(0x30, TRUE, 7);
|
||||
m_state->SetUnknown8(0);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10003e90
|
||||
void Helicopter::VTable0x74(Matrix4Impl& p_transform)
|
||||
{
|
||||
if (m_unk0xea != 0) {
|
||||
m_roi->FUN_100a46b0(p_transform);
|
||||
FUN_10010c30();
|
||||
}
|
||||
else {
|
||||
m_roi->FUN_100a58f0(p_transform);
|
||||
m_roi->VTable0x14();
|
||||
if (m_cameraFlag)
|
||||
FUN_10010c30();
|
||||
}
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10003ee0
|
||||
void Helicopter::VTable0x70(float p_float)
|
||||
{
|
||||
MxU32 state = m_state->GetUnkown8();
|
||||
switch (state) {
|
||||
default:
|
||||
LegoPathActor::VTable0x70(p_float);
|
||||
return;
|
||||
case 4:
|
||||
case 5:
|
||||
float f = m_unk0x1f0 - p_float + 3000;
|
||||
if (f >= 0) {
|
||||
float f2 = f / 3000 + 1;
|
||||
if (f2 < 0)
|
||||
f2 = 0;
|
||||
if (1.0f < f2)
|
||||
f2 = 1.0f;
|
||||
Vector3Impl v(m_unk0x160.GetMatrix()[3]);
|
||||
Matrix4Data mat;
|
||||
Vector3Impl v2(m_unk0x1a8.GetMatrix()[3]);
|
||||
float* loc = m_unk0x1a8.GetMatrix()[3];
|
||||
mat.SetIdentity();
|
||||
float fa[4];
|
||||
Vector4Impl v3(fa);
|
||||
if (m_unk0x1f4.FUN_100040a0(v3, f2) == SUCCESS) {
|
||||
mat.FromQuaternion(v3);
|
||||
}
|
||||
v2.SetVector(loc);
|
||||
v2.Sub(&v);
|
||||
v2.Mul(f2);
|
||||
v2.Add(&v);
|
||||
m_world->GetCamera()->FUN_100123e0(mat, 0);
|
||||
}
|
||||
else {
|
||||
if (state == 4)
|
||||
m_world->FUN_10073400();
|
||||
else
|
||||
m_world->FUN_10073430();
|
||||
m_unk0xdc = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100040a0
|
||||
MxResult HelicopterSubclass::FUN_100040a0(Vector4Impl& p_v, float p_f)
|
||||
{
|
||||
MxU32 state = m_unk0x30;
|
||||
if (state == 1) {
|
||||
p_v.EqualsImpl(m_unk0x0.GetVector().elements);
|
||||
p_v[3] = acos(p_v[3]) * (1 - p_f) * 2.0;
|
||||
return p_v.NormalizeQuaternion();
|
||||
}
|
||||
else if (state == 2) {
|
||||
p_v.EqualsImpl(m_unk0x18.GetVector().elements);
|
||||
p_v[3] = acos(p_v[3]) * p_f * 2.0;
|
||||
p_v.NormalizeQuaternion();
|
||||
return p_v.NormalizeQuaternion();
|
||||
}
|
||||
else if (state == 3) {
|
||||
double d1 = p_v.Dot(&m_unk0x0, &m_unk0x18), d2;
|
||||
if (d1 + 1 > 0.00001) {
|
||||
if (1 - d1 > 0.00001) {
|
||||
double d = acos(d1);
|
||||
sin(d);
|
||||
d1 = sin((1 - p_f) * d) / sin(d);
|
||||
d2 = sin(p_f * d) / sin(d);
|
||||
}
|
||||
else {
|
||||
d1 = 1 - p_f;
|
||||
d2 = p_f;
|
||||
}
|
||||
for (MxS32 i = 0; i < 4; i++) {
|
||||
p_v[i] = m_unk0x18[i] * d2 + m_unk0x0[i] * d1;
|
||||
}
|
||||
return SUCCESS;
|
||||
}
|
||||
p_v[0] = -m_unk0x0[1];
|
||||
p_v[1] = m_unk0x0[1];
|
||||
p_v[2] = -m_unk0x0[3];
|
||||
p_v[3] = m_unk0x0[2];
|
||||
d1 = sin((1 - p_f) * 1.570796326794895);
|
||||
d2 = sin(p_f * 1.570796326794895);
|
||||
for (MxS32 i = 0; i < 3; i++) {
|
||||
p_v[i] = m_unk0x0[i] * d1 + p_v[i] * d2;
|
||||
}
|
||||
return SUCCESS;
|
||||
}
|
||||
else
|
||||
return FAILURE;
|
||||
}
|
||||
1
LEGO1/lego/legoomni/src/build/helicopterstate.cpp
Normal file
1
LEGO1/lego/legoomni/src/build/helicopterstate.cpp
Normal file
@ -0,0 +1 @@
|
||||
#include "helicopterstate.h"
|
||||
11
LEGO1/lego/legoomni/src/build/jetski.cpp
Normal file
11
LEGO1/lego/legoomni/src/build/jetski.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
#include "jetski.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(Jetski, 0x164);
|
||||
|
||||
// FUNCTION: LEGO1 0x1007e3b0
|
||||
Jetski::Jetski()
|
||||
{
|
||||
this->m_unk0x13c = 25.0;
|
||||
this->m_unk0x150 = 2.0;
|
||||
this->m_unk0x148 = 1;
|
||||
}
|
||||
28
LEGO1/lego/legoomni/src/build/legobuildingmanager.cpp
Normal file
28
LEGO1/lego/legoomni/src/build/legobuildingmanager.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
#include "legobuildingmanager.h"
|
||||
|
||||
// GLOBAL: LEGO1 0x100f37cc
|
||||
int g_buildingManagerConfig = 1;
|
||||
|
||||
// FUNCTION: LEGO1 0x1002f8b0
|
||||
void LegoBuildingManager::configureLegoBuildingManager(MxS32 p_buildingManagerConfig)
|
||||
{
|
||||
g_buildingManagerConfig = p_buildingManagerConfig;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1002f8c0
|
||||
LegoBuildingManager::LegoBuildingManager()
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1002f960
|
||||
LegoBuildingManager::~LegoBuildingManager()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1002f9d0
|
||||
void LegoBuildingManager::Init()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
29
LEGO1/lego/legoomni/src/build/legocarbuild.cpp
Normal file
29
LEGO1/lego/legoomni/src/build/legocarbuild.cpp
Normal file
@ -0,0 +1,29 @@
|
||||
#include "legocarbuild.h"
|
||||
|
||||
// STUB: LEGO1 0x100226d0
|
||||
LegoCarBuild::LegoCarBuild()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10022a80
|
||||
LegoCarBuild::~LegoCarBuild()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100238b0
|
||||
MxResult LegoCarBuild::Tickle()
|
||||
{
|
||||
// TODO
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10024050
|
||||
MxLong LegoCarBuild::Notify(MxParam& p_param)
|
||||
{
|
||||
// TODO
|
||||
|
||||
return 0;
|
||||
}
|
||||
25
LEGO1/lego/legoomni/src/build/legovehiclebuildstate.cpp
Normal file
25
LEGO1/lego/legoomni/src/build/legovehiclebuildstate.cpp
Normal file
@ -0,0 +1,25 @@
|
||||
#include "legovehiclebuildstate.h"
|
||||
|
||||
#include "decomp.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(LegoVehicleBuildState, 0x50); // 1000acd7
|
||||
DECOMP_SIZE_ASSERT(LegoVehicleBuildState::UnkStruct, 0xc);
|
||||
|
||||
// FUNCTION: LEGO1 0x10017c00
|
||||
LegoVehicleBuildState::UnkStruct::UnkStruct()
|
||||
{
|
||||
m_unk0x04 = 0;
|
||||
m_unk0x00 = 0;
|
||||
m_unk0x06 = 0;
|
||||
m_unk0x08 = 0;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10025f30
|
||||
LegoVehicleBuildState::LegoVehicleBuildState(char* p_classType)
|
||||
{
|
||||
this->m_className = p_classType;
|
||||
this->m_unk0x4c = 0;
|
||||
this->m_unk0x4d = 0;
|
||||
this->m_unk0x4e = 0;
|
||||
this->m_placedPartCount = 0;
|
||||
}
|
||||
15
LEGO1/lego/legoomni/src/build/racecar.cpp
Normal file
15
LEGO1/lego/legoomni/src/build/racecar.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
#include "racecar.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(RaceCar, 0x164);
|
||||
|
||||
// FUNCTION: LEGO1 0x10028200
|
||||
RaceCar::RaceCar()
|
||||
{
|
||||
this->m_unk0x13c = 40.0;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10028420
|
||||
RaceCar::~RaceCar()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
274
out.html
Normal file
274
out.html
Normal file
@ -0,0 +1,274 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Decompilation Status</title>
|
||||
<style>
|
||||
body {
|
||||
background: #202020;
|
||||
color: #f0f0f0;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.main {
|
||||
width: 800px;
|
||||
max-width: 100%;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#search {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
background: #303030;
|
||||
color: #f0f0f0;
|
||||
border: 1px #f0f0f0 solid;
|
||||
padding: 0.5em;
|
||||
border-radius: 0.5em;
|
||||
}
|
||||
|
||||
#search::placeholder {
|
||||
color: #b0b0b0;
|
||||
}
|
||||
|
||||
#listing {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.funcrow:hover {
|
||||
background: #404040 !important;
|
||||
}
|
||||
|
||||
.funcrow:nth-child(odd), #listing th {
|
||||
background: #282828;
|
||||
}
|
||||
|
||||
.funcrow:nth-child(even) {
|
||||
background: #383838;
|
||||
}
|
||||
|
||||
#listing td, #listing th {
|
||||
border: 1px #f0f0f0 solid;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.diffneg {
|
||||
color: #FF8080;
|
||||
}
|
||||
|
||||
.diffpos {
|
||||
color: #80FF80;
|
||||
}
|
||||
|
||||
.identical {
|
||||
font-style: italic;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#sortind {
|
||||
margin: 0 0.5em;
|
||||
}
|
||||
|
||||
.filters {
|
||||
font-size: 10pt;
|
||||
text-align: center;
|
||||
margin: 0.5em 0 1em 0;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
var data = [{"address": "0x100a1550", "name": "TglImpl::TglD3DRMIMAGE::InitializePalette", "matching": 0.68, "diff": ""}];
|
||||
|
||||
function diffCssClass(firstChar) {
|
||||
return firstChar === '-' ? 'diffneg' : (firstChar === '+' ? 'diffpos' : '');
|
||||
}
|
||||
|
||||
function asmLineToDiv(line) {
|
||||
const diff_line = document.createElement('div');
|
||||
diff_line.className = diffCssClass(line[0]);
|
||||
diff_line.innerText = line;
|
||||
return diff_line;
|
||||
}
|
||||
|
||||
function formatAsm(asm) {
|
||||
var lines = asm.split('\n');
|
||||
return lines.filter(line => line.length > 0)
|
||||
.map(asmLineToDiv);
|
||||
}
|
||||
|
||||
function rowClick() {
|
||||
if (this.dataset.expanded === 'true') {
|
||||
this.nextSibling.remove();
|
||||
this.dataset.expanded = false;
|
||||
} else {
|
||||
var row = this.parentNode.insertBefore(document.createElement('tr'), this.nextSibling);
|
||||
row.classList.add('diff');
|
||||
var decCel = row.appendChild(document.createElement('td'));
|
||||
decCel.colSpan = 3;
|
||||
var diff = data[this.dataset.index].diff;
|
||||
if (diff == '') {
|
||||
diff = document.createElement('div');
|
||||
diff.className = 'identical';
|
||||
diff.innerText = 'Identical function - no diff';
|
||||
decCel.appendChild(diff);
|
||||
} else {
|
||||
diff = formatAsm(diff);
|
||||
for (const el of diff) {
|
||||
decCel.appendChild(el);
|
||||
}
|
||||
}
|
||||
this.dataset.expanded = true;
|
||||
}
|
||||
}
|
||||
|
||||
function closeAllDiffs() {
|
||||
const collection = document.getElementsByClassName("diff");
|
||||
for (var ele of collection) {
|
||||
ele.remove();
|
||||
}
|
||||
}
|
||||
|
||||
const filterOptions = { text: '', hidePerfect: false };
|
||||
|
||||
function filter() {
|
||||
closeAllDiffs();
|
||||
|
||||
var ltext = filterOptions.text.toLowerCase();
|
||||
|
||||
const collection = document.getElementsByClassName("funcrow");
|
||||
var searchCount = 0;
|
||||
for (var ele of collection) {
|
||||
var eledata = data[ele.dataset.index];
|
||||
|
||||
const textOk = (ltext == ''
|
||||
|| eledata.address.toLowerCase().includes(ltext)
|
||||
|| eledata.name.toLowerCase().includes(ltext));
|
||||
|
||||
const perfOk = (!filterOptions.hidePerfect || (eledata.matching < 1));
|
||||
|
||||
if (textOk && perfOk) {
|
||||
ele.style.display = '';
|
||||
searchCount++;
|
||||
} else {
|
||||
ele.style.display = 'none';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var lastSortedCol = -1;
|
||||
var ascending = true;
|
||||
|
||||
function sortByColumn(column) {
|
||||
closeAllDiffs();
|
||||
|
||||
if (column == lastSortedCol) {
|
||||
ascending = !ascending;
|
||||
}
|
||||
lastSortedCol = column;
|
||||
|
||||
const collection = document.getElementsByClassName("funcrow");
|
||||
|
||||
var newOrder = [];
|
||||
|
||||
for (var ele of collection) {
|
||||
var inserted = false;
|
||||
|
||||
for (var i = 0; i < newOrder.length; i++) {
|
||||
var cmpEle = newOrder[i];
|
||||
|
||||
var ourCol = ele.childNodes[column];
|
||||
var cmpCol = cmpEle.childNodes[column];
|
||||
|
||||
if ((cmpCol.dataset.value > ourCol.dataset.value) == ascending) {
|
||||
newOrder.splice(i, 0, ele);
|
||||
inserted = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!inserted) {
|
||||
newOrder.push(ele);
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 1; i < newOrder.length; i++) {
|
||||
newOrder[i - 1].after(newOrder[i]);
|
||||
}
|
||||
|
||||
var sortIndicator = document.getElementById('sortind');
|
||||
if (!sortIndicator) {
|
||||
sortIndicator = document.createElement('span');
|
||||
sortIndicator.id = 'sortind';
|
||||
}
|
||||
sortIndicator.innerHTML = ascending ? '▲' : '▼';
|
||||
|
||||
var th = document.getElementById('listingheader').childNodes[column];
|
||||
th.appendChild(sortIndicator);
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
var listing = document.getElementById('listing');
|
||||
|
||||
const headers = listing.getElementsByTagName('th');
|
||||
var headerCount = 0;
|
||||
for (const header of headers) {
|
||||
header.addEventListener('click', function(){
|
||||
sortByColumn(this.dataset.column, true);
|
||||
});
|
||||
|
||||
header.dataset.column = headerCount;
|
||||
headerCount++;
|
||||
}
|
||||
|
||||
data.forEach((element, index) => {
|
||||
var row = listing.appendChild(document.createElement('tr'));
|
||||
var addrCel = row.appendChild(document.createElement('td'));
|
||||
var nameCel = row.appendChild(document.createElement('td'));
|
||||
var matchCel = row.appendChild(document.createElement('td'));
|
||||
|
||||
addrCel.innerText = addrCel.dataset.value = element.address;
|
||||
nameCel.innerText = nameCel.dataset.value = element.name;
|
||||
|
||||
var effectiveNote = (element.matching == 1 && element.diff != '') ? '*' : '';
|
||||
matchCel.innerHTML = (element.matching * 100).toFixed(2) + '%' + effectiveNote;
|
||||
matchCel.dataset.value = element.matching;
|
||||
|
||||
row.classList.add('funcrow');
|
||||
row.addEventListener('click', rowClick);
|
||||
row.dataset.index = index;
|
||||
row.dataset.expanded = false;
|
||||
});
|
||||
|
||||
var search = document.getElementById('search');
|
||||
search.addEventListener('input', function (evt) {
|
||||
filterOptions.text = search.value;
|
||||
filter();
|
||||
});
|
||||
|
||||
const cbHidePerfect = document.getElementById('cbHidePerfect');
|
||||
cbHidePerfect.addEventListener('change', evt => {
|
||||
filterOptions.hidePerfect = evt.target.checked;
|
||||
filter();
|
||||
})
|
||||
|
||||
sortByColumn(0);
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="main">
|
||||
<h1>Decompilation Status</h1>
|
||||
<input id="search" type="search" placeholder="Search for offset or function name...">
|
||||
<div class="filters">
|
||||
<label for="cbHidePerfect">Hide 100% match</label>
|
||||
<input type="checkbox" id="cbHidePerfect" />
|
||||
</div>
|
||||
<table id="listing">
|
||||
<tr id='listingheader'><th style='width: 20%'>Address</th><th style="width:60%">Name</th><th style='width: 20%'>Matching</th></tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
216
qwe
Normal file
216
qwe
Normal file
@ -0,0 +1,216 @@
|
||||
LEGO1/define.cpp
|
||||
LEGO1/lego/legoomni/src/act1/act1state.cpp
|
||||
LEGO1/lego/legoomni/src/act2/act2brick.cpp
|
||||
LEGO1/lego/legoomni/src/act2/act2policestation.cpp
|
||||
LEGO1/lego/legoomni/src/act2/legoact2state.cpp
|
||||
LEGO1/lego/legoomni/src/act3/act3.cpp
|
||||
LEGO1/lego/legoomni/src/act3/act3shark.cpp
|
||||
LEGO1/lego/legoomni/src/act3/act3state.cpp
|
||||
LEGO1/lego/legoomni/src/audio/legocachesound.cpp
|
||||
LEGO1/lego/legoomni/src/audio/legoloadcachesoundpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp
|
||||
LEGO1/lego/legoomni/src/build/buildingentity.cpp
|
||||
LEGO1/lego/legoomni/src/build/dunebuggy.cpp
|
||||
LEGO1/lego/legoomni/src/build/helicopter.cpp
|
||||
LEGO1/lego/legoomni/src/build/helicopterstate.cpp
|
||||
LEGO1/lego/legoomni/src/build/jetski.cpp
|
||||
LEGO1/lego/legoomni/src/build/legobuildingmanager.cpp
|
||||
LEGO1/lego/legoomni/src/build/legocarbuild.cpp
|
||||
LEGO1/lego/legoomni/src/build/legovehiclebuildstate.cpp
|
||||
LEGO1/lego/legoomni/src/build/racecar.cpp
|
||||
LEGO1/lego/legoomni/src/common/animstate.cpp
|
||||
LEGO1/lego/legoomni/src/common/gifmanager.cpp
|
||||
LEGO1/lego/legoomni/src/common/legoactioncontrolpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/common/legobackgroundcolor.cpp
|
||||
LEGO1/lego/legoomni/src/common/legocameracontroller.cpp
|
||||
LEGO1/lego/legoomni/src/common/legofullscreenmovie.cpp
|
||||
LEGO1/lego/legoomni/src/common/legogamestate.cpp
|
||||
LEGO1/lego/legoomni/src/common/legonavcontroller.cpp
|
||||
LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp
|
||||
LEGO1/lego/legoomni/src/common/legoplantmanager.cpp
|
||||
LEGO1/lego/legoomni/src/common/legostate.cpp
|
||||
LEGO1/lego/legoomni/src/common/legostream.cpp
|
||||
LEGO1/lego/legoomni/src/common/legounksavedatawriter.cpp
|
||||
LEGO1/lego/legoomni/src/common/legoutil.cpp
|
||||
LEGO1/lego/legoomni/src/control/legocontrolmanager.cpp
|
||||
LEGO1/lego/legoomni/src/entity/legoactor.cpp
|
||||
LEGO1/lego/legoomni/src/entity/legoanimactor.cpp
|
||||
LEGO1/lego/legoomni/src/entity/legoentity.cpp
|
||||
LEGO1/lego/legoomni/src/entity/legoentitypresenter.cpp
|
||||
LEGO1/lego/legoomni/src/entity/legojetski.cpp
|
||||
LEGO1/lego/legoomni/src/entity/legopathactor.cpp
|
||||
LEGO1/lego/legoomni/src/entity/legorace.cpp
|
||||
LEGO1/lego/legoomni/src/entity/legoworld.cpp
|
||||
LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/gasstation/gasstation.cpp
|
||||
LEGO1/lego/legoomni/src/gasstation/gasstationentity.cpp
|
||||
LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp
|
||||
LEGO1/lego/legoomni/src/hospital/ambulance.cpp
|
||||
LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp
|
||||
LEGO1/lego/legoomni/src/hospital/hospital.cpp
|
||||
LEGO1/lego/legoomni/src/hospital/hospitalentity.cpp
|
||||
LEGO1/lego/legoomni/src/hospital/hospitalstate.cpp
|
||||
LEGO1/lego/legoomni/src/infocenter/elevatorbottom.cpp
|
||||
LEGO1/lego/legoomni/src/infocenter/infocenter.cpp
|
||||
LEGO1/lego/legoomni/src/infocenter/infocenterdoor.cpp
|
||||
LEGO1/lego/legoomni/src/infocenter/infocenterentity.cpp
|
||||
LEGO1/lego/legoomni/src/infocenter/infocenterstate.cpp
|
||||
LEGO1/lego/legoomni/src/infocenter/registrationbook.cpp
|
||||
LEGO1/lego/legoomni/src/infocenter/score.cpp
|
||||
LEGO1/lego/legoomni/src/infocenter/scorestate.cpp
|
||||
LEGO1/lego/legoomni/src/input/legoinputmanager.cpp
|
||||
LEGO1/lego/legoomni/src/isle/beachhouseentity.cpp
|
||||
LEGO1/lego/legoomni/src/isle/bike.cpp
|
||||
LEGO1/lego/legoomni/src/isle/bumpbouy.cpp
|
||||
LEGO1/lego/legoomni/src/isle/historybook.cpp
|
||||
LEGO1/lego/legoomni/src/isle/isleactor.cpp
|
||||
LEGO1/lego/legoomni/src/isle/isle.cpp
|
||||
LEGO1/lego/legoomni/src/isle/islepathactor.cpp
|
||||
LEGO1/lego/legoomni/src/isle/jukebox.cpp
|
||||
LEGO1/lego/legoomni/src/isle/jukeboxentity.cpp
|
||||
LEGO1/lego/legoomni/src/isle/jukeboxstate.cpp
|
||||
LEGO1/lego/legoomni/src/isle/motorcycle.cpp
|
||||
LEGO1/lego/legoomni/src/isle/radio.cpp
|
||||
LEGO1/lego/legoomni/src/isle/radiostate.cpp
|
||||
LEGO1/lego/legoomni/src/isle/skateboard.cpp
|
||||
LEGO1/lego/legoomni/src/main/legoomni.cpp
|
||||
LEGO1/lego/legoomni/src/notify/legoeventnotificationparam.cpp
|
||||
LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp
|
||||
LEGO1/lego/legoomni/src/paths/legopathpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/pizzeria/pizza.cpp
|
||||
LEGO1/lego/legoomni/src/pizzeria/pizzamissionstate.cpp
|
||||
LEGO1/lego/legoomni/src/pizzeria/pizzeria.cpp
|
||||
LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp
|
||||
LEGO1/lego/legoomni/src/police/police.cpp
|
||||
LEGO1/lego/legoomni/src/police/policeentity.cpp
|
||||
LEGO1/lego/legoomni/src/police/policestate.cpp
|
||||
LEGO1/lego/legoomni/src/race/carrace.cpp
|
||||
LEGO1/lego/legoomni/src/race/jetskirace.cpp
|
||||
LEGO1/lego/legoomni/src/race/racestandsentity.cpp
|
||||
LEGO1/lego/legoomni/src/race/racestate.cpp
|
||||
LEGO1/lego/legoomni/src/towtrack/towtrack.cpp
|
||||
LEGO1/lego/legoomni/src/towtrack/towtrackmissionstate.cpp
|
||||
LEGO1/lego/legoomni/src/unknown/legounknown100d7c88.cpp
|
||||
LEGO1/lego/legoomni/src/video/legoanimationmanager.cpp
|
||||
LEGO1/lego/legoomni/src/video/legoanimmmpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/video/legocarbuildanimpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/video/legoflctexturepresenter.cpp
|
||||
LEGO1/lego/legoomni/src/video/legohideanimpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/video/legometerpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/video/legopalettepresenter.cpp
|
||||
LEGO1/lego/legoomni/src/video/legopartpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp
|
||||
LEGO1/lego/legoomni/src/video/legotexturepresenter.cpp
|
||||
LEGO1/lego/legoomni/src/video/legovideomanager.cpp
|
||||
LEGO1/lego/sources/3dmanager/lego3dmanager.cpp
|
||||
LEGO1/lego/sources/3dmanager/lego3dview.cpp
|
||||
LEGO1/lego/sources/3dmanager/legoview1.cpp
|
||||
LEGO1/lego/sources/3dmanager/tglsurface.cpp
|
||||
LEGO1/lego/sources/roi/legoroi.cpp
|
||||
LEGO1/mxdirectx/mxdirect3d.cpp
|
||||
LEGO1/mxdirectx/mxdirectdraw.cpp
|
||||
LEGO1/omni/src/action/mxdsaction.cpp
|
||||
LEGO1/omni/src/action/mxdsanim.cpp
|
||||
LEGO1/omni/src/action/mxdsevent.cpp
|
||||
LEGO1/omni/src/action/mxdsmediaaction.cpp
|
||||
LEGO1/omni/src/action/mxdsmultiaction.cpp
|
||||
LEGO1/omni/src/action/mxdsobjectaction.cpp
|
||||
LEGO1/omni/src/action/mxdsobject.cpp
|
||||
LEGO1/omni/src/action/mxdsparallelaction.cpp
|
||||
LEGO1/omni/src/action/mxdsselectaction.cpp
|
||||
LEGO1/omni/src/action/mxdsserialaction.cpp
|
||||
LEGO1/omni/src/action/mxdssound.cpp
|
||||
LEGO1/omni/src/action/mxdsstill.cpp
|
||||
LEGO1/omni/src/action/mxdsstreamingaction.cpp
|
||||
LEGO1/omni/src/audio/mxaudiomanager.cpp
|
||||
LEGO1/omni/src/audio/mxaudiopresenter.cpp
|
||||
LEGO1/omni/src/audio/mxbackgroundaudiomanager.cpp
|
||||
LEGO1/omni/src/audio/mxloopingmidipresenter.cpp
|
||||
LEGO1/omni/src/audio/mxmidipresenter.cpp
|
||||
LEGO1/omni/src/audio/mxmusicmanager.cpp
|
||||
LEGO1/omni/src/audio/mxmusicpresenter.cpp
|
||||
LEGO1/omni/src/audio/mxsoundmanager.cpp
|
||||
LEGO1/omni/src/audio/mxsoundpresenter.cpp
|
||||
LEGO1/omni/src/audio/mxwavepresenter.cpp
|
||||
LEGO1/omni/src/common/mxatomidcounter.cpp
|
||||
LEGO1/omni/src/common/mxatomid.cpp
|
||||
LEGO1/omni/src/common/mxcompositemediapresenter.cpp
|
||||
LEGO1/omni/src/common/mxcompositepresenter.cpp
|
||||
LEGO1/omni/src/common/mxcore.cpp
|
||||
LEGO1/omni/src/common/mxmediamanager.cpp
|
||||
LEGO1/omni/src/common/mxmediapresenter.cpp
|
||||
LEGO1/omni/src/common/mxobjectfactory.cpp
|
||||
LEGO1/omni/src/common/mxpresenter.cpp
|
||||
LEGO1/omni/src/common/mxstring.cpp
|
||||
LEGO1/omni/src/common/mxticklemanager.cpp
|
||||
LEGO1/omni/src/common/mxtimer.cpp
|
||||
LEGO1/omni/src/common/mxvariable.cpp
|
||||
LEGO1/omni/src/common/mxvariabletable.cpp
|
||||
LEGO1/omni/src/control/mxcontrolpresenter.cpp
|
||||
LEGO1/omni/src/entity/mxentity.cpp
|
||||
LEGO1/omni/src/event/mxeventmanager.cpp
|
||||
LEGO1/omni/src/event/mxeventpresenter.cpp
|
||||
LEGO1/omni/src/main/mxmain.cpp
|
||||
LEGO1/omni/src/main/mxomni.cpp
|
||||
LEGO1/omni/src/main/mxomnicreateflags.cpp
|
||||
LEGO1/omni/src/main/mxomnicreateparam.cpp
|
||||
LEGO1/omni/src/notify/mxactionnotificationparam.cpp
|
||||
LEGO1/omni/src/notify/mxnotificationmanager.cpp
|
||||
LEGO1/omni/src/notify/mxnotificationparam.cpp
|
||||
LEGO1/omni/src/notify/mxtype17notificationparam.cpp
|
||||
LEGO1/omni/src/stream/mxdiskstreamcontroller.cpp
|
||||
LEGO1/omni/src/stream/mxdiskstreamprovider.cpp
|
||||
LEGO1/omni/src/stream/mxdsbuffer.cpp
|
||||
LEGO1/omni/src/stream/mxdschunk.cpp
|
||||
LEGO1/omni/src/stream/mxdsfile.cpp
|
||||
LEGO1/omni/src/stream/mxdssource.cpp
|
||||
LEGO1/omni/src/stream/mxdssubscriber.cpp
|
||||
LEGO1/omni/src/stream/mxioinfo.cpp
|
||||
LEGO1/omni/src/stream/mxramstreamcontroller.cpp
|
||||
LEGO1/omni/src/stream/mxramstreamprovider.cpp
|
||||
LEGO1/omni/src/stream/mxstreamchunk.cpp
|
||||
LEGO1/omni/src/stream/mxstreamcontroller.cpp
|
||||
LEGO1/omni/src/stream/mxstreamer.cpp
|
||||
LEGO1/omni/src/stream/mxstreamlist.cpp
|
||||
LEGO1/omni/src/stream/mxstreamprovider.cpp
|
||||
LEGO1/omni/src/system/mxautolocker.cpp
|
||||
LEGO1/omni/src/system/mxcriticalsection.cpp
|
||||
LEGO1/omni/src/system/mxscheduler.cpp
|
||||
LEGO1/omni/src/system/mxsemaphore.cpp
|
||||
LEGO1/omni/src/system/mxthread.cpp
|
||||
LEGO1/omni/src/video/mxbitmap.cpp
|
||||
LEGO1/omni/src/video/mxdisplaysurface.cpp
|
||||
LEGO1/omni/src/video/mxflcpresenter.cpp
|
||||
LEGO1/omni/src/video/mxloopingflcpresenter.cpp
|
||||
LEGO1/omni/src/video/mxloopingsmkpresenter.cpp
|
||||
LEGO1/omni/src/video/mxpalette.cpp
|
||||
LEGO1/omni/src/video/mxregion.cpp
|
||||
LEGO1/omni/src/video/mxregioncursor.cpp
|
||||
LEGO1/omni/src/video/mxsmack.cpp
|
||||
LEGO1/omni/src/video/mxsmkpresenter.cpp
|
||||
LEGO1/omni/src/video/mxstillpresenter.cpp
|
||||
LEGO1/omni/src/video/mxtransitionmanager.cpp
|
||||
LEGO1/omni/src/video/mxvideomanager.cpp
|
||||
LEGO1/omni/src/video/mxvideoparam.cpp
|
||||
LEGO1/omni/src/video/mxvideoparamflags.cpp
|
||||
LEGO1/omni/src/video/mxvideopresenter.cpp
|
||||
LEGO1/realtime/matrix.cpp
|
||||
LEGO1/realtime/orientableroi.cpp
|
||||
LEGO1/realtime/realtime.cpp
|
||||
LEGO1/realtime/realtimeview.cpp
|
||||
LEGO1/realtime/vector.cpp
|
||||
LEGO1/tgl/d3drm/camera.cpp
|
||||
LEGO1/tgl/d3drm/device.cpp
|
||||
LEGO1/tgl/d3drm/group.cpp
|
||||
LEGO1/tgl/d3drm/light.cpp
|
||||
LEGO1/tgl/d3drm/mesh.cpp
|
||||
LEGO1/tgl/d3drm/renderer.cpp
|
||||
LEGO1/tgl/d3drm/texture.cpp
|
||||
LEGO1/tgl/d3drm/unk.cpp
|
||||
LEGO1/tgl/d3drm/view.cpp
|
||||
LEGO1/viewmanager/viewlodlist.cpp
|
||||
LEGO1/viewmanager/viewmanager.cpp
|
||||
LEGO1/viewmanager/viewroi.cpp
|
||||
3
tools/isledecomp/.gitignore
vendored
3
tools/isledecomp/.gitignore
vendored
@ -1 +1,2 @@
|
||||
isledecomp.egg-info/
|
||||
isledecomp.egg-info/
|
||||
build
|
||||
Loading…
Reference in New Issue
Block a user