Why do some props appear as completely black, even though they are not flesh colored?
This is due to lighting should be able to change this in studio
Why does the connected regions button crash the studio?
because it needs to be setup
Why do single player missions crash the studio?
because the runcodes were removed to allow studio
Why are there no options to set video settings?
Dont know
Why does the mini-map not work?
lighting issues
Can you also restore the console? (Shift + Alt + F10)
maybe depends if i can figure out whats up with it
Why do Sarge and the Bulldozer still appear even after a side is Fixed?
not sure
Why does attempting to exit normally crash?
not sure
I will be redoing the entire thing to hopefully fix issues and allow to play and test the missions
here is the changes
in DR2 gamegod.cpp is the following
Code: Select all
void Init()
{
ASSERT(!initialized)
// Never seen original CD
seenOriginal = FALSE;
// See if it's there now
FindOriginalCD();
// Register command handler
VarSys::RegisterHandler("gamegod", CmdHandler);
VarSys::RegisterHandler("gamegod.missions", CmdHandler);
VarSys::RegisterHandler("gamegod.flow", CmdHandler);
VarSys::RegisterHandler("gamegod.loader", CmdHandler);
// Create items
VarSys::CreateCmd("gamegod.verify");
VarSys::CreateCmd("gamegod.dosafeload");
VarSys::CreateCmd("gamegod.setterraingroup");
VarSys::CreateCmd("gamegod.setnewmapsize");
VarSys::CreateInteger("gamegod.check.types", 0, VarSys::DEFAULT, &checkTypes);
VarSys::CreateInteger("gamegod.check.objects", 0, VarSys::DEFAULT, &checkObjects);
VarSys::CreateCmd("gamegod.missions.select");
VarSys::CreateCmd("gamegod.missions.launch");
VarSys::CreateCmd("gamegod.missions.replay");
VarSys::CreateCmd("gamegod.missions.next");
VarSys::CreateCmd("gamegod.missions.current");
VarSys::CreateCmd("gamegod.missions.progress");
VarSys::CreateInteger("gamegod.studiomode", 0, VarSys::DEFAULT, &studioEnabled);
VarSys::CreateString("gamegod.flow.action", "", VarSys::DEFAULT, &flowAction);
VarSys::CreateString("gamegod.flow.state", "", VarSys::DEFAULT, &flowState);
VarSys::CreateString("gamegod.loader.system", "", VarSys::DEFAULT, &Loader::system);
VarSys::CreateFloat ("gamegod.loader.percent", 0.0F, VarSys::DEFAULT, &Loader::percent)->SetFloatRange(0.0F, 1.0F);
// System now initialized
initialized = TRUE;
// Initialize game-specific core systems
Sound::Init();
Sound::Digital::Claim();
Sound::Redbook::SetVolumeLabel(CD_LABEL_ORIGINAL);
GameSound::Init();
Orders::Init();
ExecGameConfig();
IFace::Init();
GameTime::Init();
Game::RC::Init();
Sync::Init();
Difficulty::Init();
Campaigns::Init();
Missions::Init();
User::Init();
Demo::Init();
SaveGame::Init();
Sides::Init();
Mods::Init();
MultiPlayer::Init();
//Win32Reg::Update();
Vid::InitIFace();
Mesh::Manager::InitIFace();
// Register controls
IFace::RegisterControlClass("Game::Login", CreateHandler);
IFace::RegisterControlClass("Game::MissionSelection", CreateHandler);
IFace::RegisterControlClass("Game::CampaignSelection", CreateHandler);
IFace::RegisterControlClass("Game::SaveLoad", CreateHandler);
IFace::RegisterControlClass("Game::DifficultyList", CreateHandler);
IFace::RegisterControlClass("Game::AddonList", CreateHandler);
// Set the initial run code
Main::runCodes.Set(0xA521E37B); // "Intro"
}
well in AMRTS its same and i changed the following
Code: Select all
// Set the initial run code
Main::runCodes.Set(0xA521E37B); // "Intro"
into this
Code: Select all
// Set the initial run code
Main::runCodes.Set(0xCB860660); // "studio"
which was actually
c++
Code: Select all
return sub_4B6750((int)&unk_7288E0, 0xCB860660);
asm
Code: Select all
push 0CB860660h
.text:00403449 call sub_4B6750
.text:0040344E retn
I changed the runcode setup to allow studio due to studio using 4 functions as arguments as the rest uses 3
before
Code: Select all
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
void *v4; // ebx@0
double v5; // st4@0
double v6; // st5@0
double v7; // st6@0
double v8; // st7@0
sub_4D6590();
sub_4B3470(hInstance, (int)lpCmdLine);
Main::runCodes_Register(&unk_7288E0, aStart, (int)sub_403E40, (int)sub_403DE0, (int)sub_403E70, 0, 0);
Main::runCodes_Register(&unk_7288E0, aIntro, (int)sub_403FD0, (int)sub_403F10, (int)sub_404100, 0, 0);
Main::runCodes_Register(&unk_7288E0, aShell, (int)sub_404170, (int)unknown_libname_12, (int)sub_404180, 0, 0);
Main::runCodes_Register(&unk_7288E0, aMission, (int)unknown_libname_14, (int)sub_404190, (int)sub_404210, 0, 0);
sub_4D0A60(sub_4038B0, v4, v5, v6, v7, v8);
sub_4B34C0();
return 0;
}
after
Code: Select all
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
void *v4; // ebx@0
double v5; // st4@0
double v6; // st5@0
double v7; // st6@0
double v8; // st7@0
sub_4D6590();
sub_4B3470(hInstance, (int)lpCmdLine);
Main::runCodes_Register(&unk_7288E0, aStart, (int)sub_403E40, (int)sub_403DE0, (int)sub_403E70, 0, 0);
Main::runCodes_Register(
&unk_7288E0,
aStudio,
(int)unknown_libname_388,
(int)Studio::Init,
(int)Studio::Done,
(int)Studio::PostInit,
0); // Added studio ignore the intro cause its there to auto trigger studio
Main::runCodes_Register(&unk_7288E0, aShell, (int)sub_404170, (int)unknown_libname_12, (int)sub_404180, 0, 0);
sub_4D0A60(sub_4038B0, v4, v5, v6, v7, v8);
sub_4B34C0();
return 0;
}