ref: c284afdaddde42695af3df1507f024758cf29ebf
parent: c83a879570f542e756ff7e0444d51a3f49800cc8
author: cuckydev <cuckydev@users.noreply.github.com>
date: Thu Jan 31 07:31:25 EST 2019
Mapping
--- a/src/Game.cpp
+++ b/src/Game.cpp
@@ -440,7 +440,7 @@
ClearArmsData();
ClearItemData();
//ClearPermitStage();
- //StartMapping();
+ StartMapping();
InitFlags();
InitBossLife();
--- a/src/MiniMap.cpp
+++ b/src/MiniMap.cpp
@@ -1,3 +1,5 @@
+#include <stdint.h>
+
#include "WindowsWrapper.h"
#include "CommonDefines.h"
@@ -7,9 +9,12 @@
#include "Game.h"
#include "KeyControl.h"
#include "Map.h"
+#include "Stage.h"
#include "MyChar.h"
#include "Main.h"
+int8_t gMapping[0x80];
+
void WriteMiniMapLine(int line)
{
RECT rcLevel[4];
@@ -170,4 +175,19 @@
}
return 1;
-}
\ No newline at end of file
+}
+
+bool IsMapping()
+{
+ return gMapping[gStageNo] != 0;
+}
+
+void StartMapping()
+{
+ memset(gMapping, 0, 0x80u);
+}
+
+void SetMapping(int a)
+{
+ gMapping[a] = 1;
+}
--- a/src/MiniMap.h
+++ b/src/MiniMap.h
@@ -1,2 +1,9 @@
#pragma once
+#include <stdint.h>
+
+extern int8_t gMapping[0x80];
+
int MiniMapLoop();
+bool IsMapping();
+void StartMapping();
+void SetMapping(int a);
--- a/src/Profile.cpp
+++ b/src/Profile.cpp
@@ -9,6 +9,7 @@
#include "Fade.h"
#include "ArmsItem.h"
#include "Flags.h"
+#include "MiniMap.h"
#include "MyChar.h"
#include "Frame.h"
#include "ValueView.h"
@@ -100,7 +101,7 @@
memcpy(gArmsData, profile.arms, sizeof(gArmsData));
memcpy(gItemData, profile.items, sizeof(gItemData));
//memcpy(gPermitStage, profile.permitstage, 0x40u);
- //memcpy(gMapping, profile.permit_mapping, 0x80u);
+ memcpy(gMapping, profile.permit_mapping, 0x80);
memcpy(gFlagNPC, profile.flags, 1000);
//Load stage
@@ -148,7 +149,7 @@
ClearArmsData();
ClearItemData();
//ClearPermitStage();
- //StartMapping();
+ StartMapping();
InitFlags();
if (!TransferStage(13, 200, 10, 8))
return false;
--- a/src/Stage.h
+++ b/src/Stage.h
@@ -12,6 +12,8 @@
char name[0x20];
};
+extern int gStageNo;
+
bool TransferStage(int no, int w, int x, int y);
void ChangeMusic(int no);
void ReCallMusic();
--- a/src/TextScr.cpp
+++ b/src/TextScr.cpp
@@ -16,6 +16,7 @@
#include "Flags.h"
#include "Profile.h"
#include "Map.h"
+#include "MiniMap.h"
#include "MapName.h"
#include "KeyControl.h"
#include "NpChar.h"
@@ -670,6 +671,18 @@
SubArmsData(z);
gTS.p_read += 8;
}
+ else if (IS_COMMAND('M','P','+'))
+ {
+ x = GetTextScriptNo(gTS.p_read + 4);
+ SetMapping(x);
+ gTS.p_read += 8;
+ }
+ else if (IS_COMMAND('U','N','I'))
+ {
+ z = GetTextScriptNo(gTS.p_read + 4);
+ ChangeMyUnit(z);
+ gTS.p_read += 8;
+ }
else if (IS_COMMAND('T','R','A'))
{
z = GetTextScriptNo(gTS.p_read + 4);
@@ -859,6 +872,41 @@
else
gTS.p_read += 13;
}
+ else if (IS_COMMAND('U','N','J'))
+ {
+ x = GetTextScriptNo(gTS.p_read + 4);
+ z = GetTextScriptNo(gTS.p_read + 9);
+ if (GetUnitMyChar() == x)
+ JumpTextScript(z);
+ else
+ gTS.p_read += 13;
+ }
+ else if (IS_COMMAND('E','C','J'))
+ {
+ x = GetTextScriptNo(gTS.p_read + 4);
+ z = GetTextScriptNo(gTS.p_read + 9);
+ if (GetNpCharAlive(x))
+ JumpTextScript(z);
+ else
+ gTS.p_read += 13;
+ }
+ else if (IS_COMMAND('E','C','J'))
+ {
+ x = GetTextScriptNo(gTS.p_read + 4);
+ z = GetTextScriptNo(gTS.p_read + 9);
+ if (IsNpCharCode(x))
+ JumpTextScript(z);
+ else
+ gTS.p_read += 13;
+ }
+ else if (IS_COMMAND('M','P','J'))
+ {
+ x = GetTextScriptNo(gTS.p_read + 4);
+ if (IsMapping())
+ JumpTextScript(x);
+ else
+ gTS.p_read += 8;
+ }
else if (IS_COMMAND('S','S','S'))
{
x = GetTextScriptNo(gTS.p_read + 4);
@@ -941,6 +989,17 @@
{
ReCallMusic();
gTS.p_read += 4;
+ }
+ else if (IS_COMMAND('M','L','P'))
+ {
+ gTS.p_read += 4;
+ bExit = true;
+
+ int tscRet = MiniMapLoop();
+ if (tscRet == 0)
+ return 0;
+ if (tscRet == 2)
+ return 2;
}
else if (IS_COMMAND('D','N','P'))
{