Compare commits
8 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 331d4fc1de | |||
| 9371876ca2 | |||
| 9c42c6b89d | |||
| 6ecf321f5c | |||
| 56ede08dbf | |||
| c5a7c1ee9d | |||
|
01dbca36a6 |
|||
| 75b4423e8f |
|
|
@ -1,8 +1,8 @@
|
||||||
# Megaman Battle Network 5 Mini Map App
|
# Megaman Battle Network 5 and 6 Mini Map App
|
||||||
|
|
||||||
This app is a Windows only tool that reads MMBN Legacy Collection 2's memory and grabs current map ID from that.
|
This app is a Windows only tool that reads MMBN Legacy Collection 2's memory and grabs current map ID from that.
|
||||||
|
|
||||||
Then it displays an image of the current room if that's present in the [images](/images/) folder.
|
Then it displays an image of the current room if that's present in the [images](images/) folder.
|
||||||
|
|
||||||
The images were taken from [Dr. Cossack's Lab](https://www.interordi.com/mega_man_pc/games/mmbn5/) without anyone's consent.
|
The images were taken from [Dr. Cossack's Lab](https://www.interordi.com/mega_man_pc/games/mmbn5/) without anyone's consent.
|
||||||
|
|
||||||
|
|
@ -10,7 +10,7 @@ The images were taken from [Dr. Cossack's Lab](https://www.interordi.com/mega_ma
|
||||||
# How to use
|
# How to use
|
||||||
|
|
||||||
- Open the legacy collection 2
|
- Open the legacy collection 2
|
||||||
- Load up MMBN 5 (tested with Team Protoman)
|
- Load up MMBN 5 (tested with Team Protoman) or MMBN6 (tested with Cyberbeast Falzar)
|
||||||
- Open this app
|
- Open this app
|
||||||
- Use `Start`/`Stop` button to enable/disable memory reading.
|
- Use `Start`/`Stop` button to enable/disable memory reading.
|
||||||
- If you encounter an `Unknown` Room - press `Edit` it and give it a name.
|
- If you encounter an `Unknown` Room - press `Edit` it and give it a name.
|
||||||
|
|
@ -48,4 +48,4 @@ Assets are *not* included. Because...
|
||||||
>
|
>
|
||||||
> Dumping something from a game sure requires an investment of time - just as crating this app and writing this readme does. But neither of those acts magically makes any of us the owner of the assets in question. At best it's a derivative work akin fan art.
|
> Dumping something from a game sure requires an investment of time - just as crating this app and writing this readme does. But neither of those acts magically makes any of us the owner of the assets in question. At best it's a derivative work akin fan art.
|
||||||
>
|
>
|
||||||
> If there's anyone to ask, that would be Capcom themselves. And we all know what they think (see [III. IMPERMISSIBLE USES](https://www.capcomusa.com/video-policy/)). Be happy Capcom doesn't enforce its rights and allows us to to what we do
|
> If there's anyone to ask, that would be Capcom themselves. And we all know what they think (see [III. IMPERMISSIBLE USES](https://www.capcomusa.com/video-policy/)). Be happy Capcom doesn't enforce its rights and allows us to do what we do
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
|
@ -14,11 +14,16 @@
|
||||||
</XPManifest>
|
</XPManifest>
|
||||||
<Icon Value="0"/>
|
<Icon Value="0"/>
|
||||||
</General>
|
</General>
|
||||||
|
<i18n>
|
||||||
|
<EnableI18N Value="True"/>
|
||||||
|
<OutDir Value="po"/>
|
||||||
|
</i18n>
|
||||||
<VersionInfo>
|
<VersionInfo>
|
||||||
<UseVersionInfo Value="True"/>
|
<UseVersionInfo Value="True"/>
|
||||||
<AutoIncrementBuild Value="True"/>
|
<AutoIncrementBuild Value="True"/>
|
||||||
<MinorVersionNr Value="2"/>
|
<MinorVersionNr Value="2"/>
|
||||||
<BuildNr Value="18"/>
|
<RevisionNr Value="1"/>
|
||||||
|
<BuildNr Value="19"/>
|
||||||
<Attributes pvaPrivateBuild="True"/>
|
<Attributes pvaPrivateBuild="True"/>
|
||||||
<StringTable CompanyName="4aiman" FileDescription="Megaman Battle Network 5 and 6 minimap app" InternalName="mmbn56mm" LegalCopyright="4aiman" OriginalFilename="mmbn56mm" ProductName="MMBN56MM" ProductVersion="2"/>
|
<StringTable CompanyName="4aiman" FileDescription="Megaman Battle Network 5 and 6 minimap app" InternalName="mmbn56mm" LegalCopyright="4aiman" OriginalFilename="mmbn56mm" ProductName="MMBN56MM" ProductVersion="2"/>
|
||||||
</VersionInfo>
|
</VersionInfo>
|
||||||
|
|
|
||||||
126
mmbn5m.lps
|
|
@ -9,7 +9,7 @@
|
||||||
<Version Value="11"/>
|
<Version Value="11"/>
|
||||||
<PathDelim Value="\"/>
|
<PathDelim Value="\"/>
|
||||||
<Target>
|
<Target>
|
||||||
<Filename Value="mmbn5mm"/>
|
<Filename Value="mmbn56mm"/>
|
||||||
</Target>
|
</Target>
|
||||||
<SearchPaths>
|
<SearchPaths>
|
||||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
|
@ -47,8 +47,8 @@
|
||||||
<Filename Value="mmbn5m.lpr"/>
|
<Filename Value="mmbn5m.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<EditorIndex Value="2"/>
|
<EditorIndex Value="2"/>
|
||||||
<CursorPos X="25" Y="5"/>
|
<CursorPos X="49" Y="20"/>
|
||||||
<UsageCount Value="57"/>
|
<UsageCount Value="65"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit>
|
</Unit>
|
||||||
<Unit>
|
<Unit>
|
||||||
|
|
@ -59,9 +59,9 @@
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<UnitName Value="Unit1"/>
|
<UnitName Value="Unit1"/>
|
||||||
<IsVisibleTab Value="True"/>
|
<IsVisibleTab Value="True"/>
|
||||||
<TopLine Value="130"/>
|
<TopLine Value="364"/>
|
||||||
<CursorPos X="85" Y="165"/>
|
<CursorPos X="52" Y="411"/>
|
||||||
<UsageCount Value="57"/>
|
<UsageCount Value="65"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
<LoadedDesigner Value="True"/>
|
<LoadedDesigner Value="True"/>
|
||||||
</Unit>
|
</Unit>
|
||||||
|
|
@ -70,21 +70,21 @@
|
||||||
<EditorIndex Value="-1"/>
|
<EditorIndex Value="-1"/>
|
||||||
<TopLine Value="128"/>
|
<TopLine Value="128"/>
|
||||||
<CursorPos Y="152"/>
|
<CursorPos Y="152"/>
|
||||||
<UsageCount Value="21"/>
|
<UsageCount Value="20"/>
|
||||||
</Unit>
|
</Unit>
|
||||||
<Unit>
|
<Unit>
|
||||||
<Filename Value="C:\lazarus\fpc\3.2.2\source\rtl\objpas\sysutils\syshelph.inc"/>
|
<Filename Value="C:\lazarus\fpc\3.2.2\source\rtl\objpas\sysutils\syshelph.inc"/>
|
||||||
<EditorIndex Value="-1"/>
|
<EditorIndex Value="-1"/>
|
||||||
<TopLine Value="147"/>
|
<TopLine Value="147"/>
|
||||||
<CursorPos X="16" Y="161"/>
|
<CursorPos X="16" Y="161"/>
|
||||||
<UsageCount Value="11"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit>
|
</Unit>
|
||||||
<Unit>
|
<Unit>
|
||||||
<Filename Value="rooms.ini"/>
|
<Filename Value="rooms.ini"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="4"/>
|
||||||
<TopLine Value="40"/>
|
<TopLine Value="274"/>
|
||||||
<CursorPos X="121" Y="53"/>
|
<CursorPos X="52" Y="298"/>
|
||||||
<UsageCount Value="16"/>
|
<UsageCount Value="20"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
<DefaultSyntaxHighlighter Value="Ini"/>
|
<DefaultSyntaxHighlighter Value="Ini"/>
|
||||||
</Unit>
|
</Unit>
|
||||||
|
|
@ -92,128 +92,148 @@
|
||||||
<Filename Value="mmbn5m.lpi"/>
|
<Filename Value="mmbn5m.lpi"/>
|
||||||
<EditorIndex Value="-1"/>
|
<EditorIndex Value="-1"/>
|
||||||
<CursorPos Y="46"/>
|
<CursorPos Y="46"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
<DefaultSyntaxHighlighter Value="XML"/>
|
<DefaultSyntaxHighlighter Value="XML"/>
|
||||||
</Unit>
|
</Unit>
|
||||||
|
<Unit>
|
||||||
|
<Filename Value="C:\lazarus\lcl\lcltranslator.pas"/>
|
||||||
|
<UnitName Value="LCLTranslator"/>
|
||||||
|
<EditorIndex Value="1"/>
|
||||||
|
<TopLine Value="95"/>
|
||||||
|
<CursorPos Y="95"/>
|
||||||
|
<UsageCount Value="12"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit>
|
||||||
|
<Unit>
|
||||||
|
<Filename Value="C:\lazarus\components\lazutils\translations.pas"/>
|
||||||
|
<UnitName Value="Translations"/>
|
||||||
|
<EditorIndex Value="3"/>
|
||||||
|
<TopLine Value="738"/>
|
||||||
|
<CursorPos X="54" Y="775"/>
|
||||||
|
<UsageCount Value="11"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory HistoryIndex="29">
|
<JumpHistory HistoryIndex="29">
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="31" Column="11"/>
|
<Caret Line="9" Column="34" TopLine="9"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="32" Column="11"/>
|
<Caret Line="432" Column="49" TopLine="387"/>
|
||||||
|
</Position>
|
||||||
|
<Position>
|
||||||
|
<Filename Value="mmbn5m.lpr"/>
|
||||||
|
<Caret Line="21" Column="21"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="40" Column="21"/>
|
<Caret Line="435" Column="35" TopLine="408"/>
|
||||||
|
</Position>
|
||||||
|
<Position>
|
||||||
|
<Filename Value="mmbn5m.lpr"/>
|
||||||
|
<Caret Line="13" Column="16"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="168" Column="27" TopLine="128"/>
|
<Caret Line="428" Column="73" TopLine="409"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="170" Column="13" TopLine="130"/>
|
<Caret Line="435" Column="50" TopLine="388"/>
|
||||||
|
</Position>
|
||||||
|
<Position>
|
||||||
|
<Filename Value="C:\lazarus\components\lazutils\translations.pas"/>
|
||||||
|
<Caret Line="762" Column="128" TopLine="738"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="171" Column="13" TopLine="131"/>
|
<Caret Line="435" Column="44" TopLine="406"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="176" Column="11" TopLine="136"/>
|
<Caret Line="437" Column="54" TopLine="406"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="282" Column="49" TopLine="282"/>
|
<Caret Line="26" Column="92"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="272" Column="72" TopLine="235"/>
|
<Caret Line="414" Column="53" TopLine="390"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="312" Column="88" TopLine="283"/>
|
<Caret Line="412" Column="27" TopLine="387"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="121" Column="7" TopLine="102"/>
|
<Caret Line="211" Column="5" TopLine="165"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="291" Column="84" TopLine="272"/>
|
<Caret Line="409" Column="19" TopLine="399"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="286" Column="14" TopLine="262"/>
|
<Caret Line="175" Column="24" TopLine="151"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="287" Column="47" TopLine="264"/>
|
<Caret Line="9" Column="73"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="289" Column="45" TopLine="265"/>
|
<Caret Line="188" Column="20" TopLine="173"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="291" Column="69" TopLine="268"/>
|
<Caret Line="189" Column="25" TopLine="171"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="300" Column="37" TopLine="275"/>
|
<Caret Line="208" Column="3" TopLine="186"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="268" Column="98" TopLine="235"/>
|
<Caret Line="453" Column="5" TopLine="408"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="344" Column="52" TopLine="315"/>
|
<Caret Line="209" Column="46" TopLine="197"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="383" Column="89" TopLine="351"/>
|
<Caret Line="224" Column="58" TopLine="192"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="281" Column="68" TopLine="259"/>
|
<Caret Line="210" Column="59" TopLine="210"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="358" Column="89" TopLine="333"/>
|
<Caret Line="195" Column="6" TopLine="171"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="136" Column="109" TopLine="108"/>
|
<Caret Line="214" Column="66" TopLine="190"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="398" Column="5" TopLine="351"/>
|
<Caret Line="415" Column="13" TopLine="375"/>
|
||||||
|
</Position>
|
||||||
|
<Position>
|
||||||
|
<Filename Value="rooms.ini"/>
|
||||||
|
<Caret Line="51" Column="40" TopLine="25"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<Caret Line="396" Column="5" TopLine="350"/>
|
<Caret Line="201" Column="82" TopLine="174"/>
|
||||||
</Position>
|
</Position>
|
||||||
<Position>
|
<Position>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
</Position>
|
<Caret Line="265" Column="25" TopLine="241"/>
|
||||||
<Position>
|
|
||||||
<Filename Value="unit1.pas"/>
|
|
||||||
<Caret Line="355" Column="14" TopLine="308"/>
|
|
||||||
</Position>
|
|
||||||
<Position>
|
|
||||||
<Filename Value="unit1.pas"/>
|
|
||||||
<Caret Line="371" Column="57" TopLine="350"/>
|
|
||||||
</Position>
|
|
||||||
<Position>
|
|
||||||
<Filename Value="unit1.pas"/>
|
|
||||||
</Position>
|
|
||||||
<Position>
|
|
||||||
<Filename Value="unit1.pas"/>
|
|
||||||
<Caret Line="360" Column="141" TopLine="352"/>
|
|
||||||
</Position>
|
</Position>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
<RunParams>
|
<RunParams>
|
||||||
|
|
|
||||||
BIN
mmbn5m.res
111
po/mmbn56mm.en.po
Normal file
|
|
@ -0,0 +1,111 @@
|
||||||
|
msgid ""
|
||||||
|
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||||
|
|
||||||
|
#: tform1.caption
|
||||||
|
msgid "MMBN5-6M"
|
||||||
|
msgstr "MMBN5-6M"
|
||||||
|
|
||||||
|
#: tform1.edit_room_button.caption
|
||||||
|
msgid "Edit Room"
|
||||||
|
msgstr "Edit Room"
|
||||||
|
|
||||||
|
#: tform1.gamebox.text
|
||||||
|
msgid "MMBN 5"
|
||||||
|
msgstr "MMBN 5"
|
||||||
|
|
||||||
|
#: tform1.label1.caption
|
||||||
|
msgid "Game:"
|
||||||
|
msgstr "Game:"
|
||||||
|
|
||||||
|
#: tform1.langbox.text
|
||||||
|
msgid "en"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tform1.map_stretch_checkbox.caption
|
||||||
|
msgid "Stretch"
|
||||||
|
msgstr "Stretch"
|
||||||
|
|
||||||
|
#: tform1.minus_spoil1.caption
|
||||||
|
msgid "-"
|
||||||
|
msgstr "-"
|
||||||
|
|
||||||
|
#: tform1.plus_spoil.caption
|
||||||
|
msgid "+"
|
||||||
|
msgstr "+"
|
||||||
|
|
||||||
|
#: tform1.room_name_label.caption
|
||||||
|
msgctxt "tform1.room_name_label.caption"
|
||||||
|
msgid "Run the game, then press \"Start\""
|
||||||
|
msgstr "Run the game, then press \"Start\""
|
||||||
|
|
||||||
|
#: tform1.spoils_label.caption
|
||||||
|
msgid "Spoils:"
|
||||||
|
msgstr "Spoils:"
|
||||||
|
|
||||||
|
#: tform1.start_stop_button.caption
|
||||||
|
msgctxt "tform1.start_stop_button.caption"
|
||||||
|
msgid "Start"
|
||||||
|
msgstr "Start"
|
||||||
|
|
||||||
|
#: unit1.adding_item
|
||||||
|
msgid "Adding item to Room #"
|
||||||
|
msgstr "Adding item to Room #"
|
||||||
|
|
||||||
|
#: unit1.app_caption
|
||||||
|
msgid "MMBN5-6M: Reading from process ID"
|
||||||
|
msgstr "MMBN5-6M: Reading from process ID"
|
||||||
|
|
||||||
|
#: unit1.editing_item
|
||||||
|
msgid "Editing item in Room #"
|
||||||
|
msgstr "Editing item in Room #"
|
||||||
|
|
||||||
|
#: unit1.editing_room
|
||||||
|
msgid "Editing Room #"
|
||||||
|
msgstr "Editing Room #"
|
||||||
|
|
||||||
|
#: unit1.enter_item_name
|
||||||
|
msgid "Enter item's name"
|
||||||
|
msgstr "Enter item's name"
|
||||||
|
|
||||||
|
#: unit1.enter_room_name
|
||||||
|
msgid "Enter this Room's name"
|
||||||
|
msgstr "Enter this Room's name"
|
||||||
|
|
||||||
|
#: unit1.error_game_memory_not_read
|
||||||
|
msgid "Error. Game's memory not read."
|
||||||
|
msgstr "Error. Game's memory not read."
|
||||||
|
|
||||||
|
#: unit1.error_game_not_running
|
||||||
|
msgid "Error. Make sure the game's running."
|
||||||
|
msgstr "Error. Make sure the game's running."
|
||||||
|
|
||||||
|
#: unit1.error_hotkey_registration_failed
|
||||||
|
msgid "HotKey registration failed. You won't be able to press Win+Y to temporarily view map in full screen."
|
||||||
|
msgstr "HotKey registration failed. You won't be able to press Win+Y to temporarily view map in full screen."
|
||||||
|
|
||||||
|
#: unit1.error_unable_to_read_game_memory
|
||||||
|
msgid "Error. Can't read game's memory."
|
||||||
|
msgstr "Error. Can't read game's memory."
|
||||||
|
|
||||||
|
#: unit1.room_number
|
||||||
|
msgid "Room #"
|
||||||
|
msgstr "Room #"
|
||||||
|
|
||||||
|
#: unit1.run_the_game_notice
|
||||||
|
msgctxt "unit1.run_the_game_notice"
|
||||||
|
msgid "Run the game, then press \"Start\""
|
||||||
|
msgstr "Run the game, then press \"Start\""
|
||||||
|
|
||||||
|
#: unit1.start_button_stop
|
||||||
|
msgid "Stop"
|
||||||
|
msgstr "Stop"
|
||||||
|
|
||||||
|
#: unit1.start_button_strat
|
||||||
|
msgctxt "unit1.start_button_strat"
|
||||||
|
msgid "Start"
|
||||||
|
msgstr "Start"
|
||||||
|
|
||||||
|
#: unit1.unknown_room
|
||||||
|
msgid "Unknown"
|
||||||
|
msgstr "Unknown"
|
||||||
|
|
||||||
107
po/mmbn56mm.ru.po
Normal file
|
|
@ -0,0 +1,107 @@
|
||||||
|
msgid ""
|
||||||
|
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||||
|
|
||||||
|
#: tform1.caption
|
||||||
|
msgid "MMBN5-6M"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tform1.edit_room_button.caption
|
||||||
|
msgid "Edit Room"
|
||||||
|
msgstr "Дать Комнате Имя"
|
||||||
|
|
||||||
|
#: tform1.gamebox.text
|
||||||
|
msgid "MMBN 5"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tform1.label1.caption
|
||||||
|
msgid "Game:"
|
||||||
|
msgstr "Игра:"
|
||||||
|
|
||||||
|
#: tform1.map_stretch_checkbox.caption
|
||||||
|
msgid "Stretch"
|
||||||
|
msgstr "Растянуть карту"
|
||||||
|
|
||||||
|
#: tform1.minus_spoil1.caption
|
||||||
|
msgid "-"
|
||||||
|
msgstr "Удалить"
|
||||||
|
|
||||||
|
#: tform1.plus_spoil.caption
|
||||||
|
msgid "+"
|
||||||
|
msgstr "Добавить"
|
||||||
|
|
||||||
|
#: tform1.room_name_label.caption
|
||||||
|
msgctxt "tform1.room_name_label.caption"
|
||||||
|
msgid "Run the game, then press \"Start\""
|
||||||
|
msgstr "Запусти игру, нажми \"Запуск\""
|
||||||
|
|
||||||
|
#: tform1.spoils_label.caption
|
||||||
|
msgid "Spoils:"
|
||||||
|
msgstr "Находки:"
|
||||||
|
|
||||||
|
#: tform1.start_stop_button.caption
|
||||||
|
msgctxt "tform1.start_stop_button.caption"
|
||||||
|
msgid "Start"
|
||||||
|
msgstr "Запуск"
|
||||||
|
|
||||||
|
#: unit1.adding_item
|
||||||
|
msgid "Adding item to Room #"
|
||||||
|
msgstr "Новая находка в Комнате №"
|
||||||
|
|
||||||
|
#: unit1.app_caption
|
||||||
|
msgid "MMBN5-6M: Reading from process ID"
|
||||||
|
msgstr "MMBN5-6M: Чтение процесса с идентификатором"
|
||||||
|
|
||||||
|
#: unit1.editing_item
|
||||||
|
msgid "Editing item in Room #"
|
||||||
|
msgstr "Редактирование находки в Комнате №"
|
||||||
|
|
||||||
|
#: unit1.editing_room
|
||||||
|
msgid "Editing Room #"
|
||||||
|
msgstr "Переименование Комнаты №"
|
||||||
|
|
||||||
|
#: unit1.enter_item_name
|
||||||
|
msgid "Enter item's name"
|
||||||
|
msgstr "Введи название находки"
|
||||||
|
|
||||||
|
#: unit1.enter_room_name
|
||||||
|
msgid "Enter this Room's name"
|
||||||
|
msgstr "Введи название Комнаты"
|
||||||
|
|
||||||
|
#: unit1.error_game_memory_not_read
|
||||||
|
msgid "Error. Game's memory not read."
|
||||||
|
msgstr "Ошибка. Память приложения не прочитана."
|
||||||
|
|
||||||
|
#: unit1.error_game_not_running
|
||||||
|
msgid "Error. Make sure the game's running."
|
||||||
|
msgstr "Ошибка. Игра точно запущена?"
|
||||||
|
|
||||||
|
#: unit1.error_hotkey_registration_failed
|
||||||
|
msgid "HotKey registration failed. You won't be able to press Win+Y to temporarily view map in full screen."
|
||||||
|
msgstr "Регистрация горячих клавиш не удалась. Нажимать Win+Y для переключения в полноэкранный режим не выйдет."
|
||||||
|
|
||||||
|
#: unit1.error_unable_to_read_game_memory
|
||||||
|
msgid "Error. Can't read game's memory."
|
||||||
|
msgstr "Ошибка. Чтение памяти приложения невозможно."
|
||||||
|
|
||||||
|
#: unit1.room_number
|
||||||
|
msgid "Room #"
|
||||||
|
msgstr "Комната №"
|
||||||
|
|
||||||
|
#: unit1.run_the_game_notice
|
||||||
|
msgctxt "unit1.run_the_game_notice"
|
||||||
|
msgid "Run the game, then press \"Start\""
|
||||||
|
msgstr "Запусти игру, нажми \"Запуск\""
|
||||||
|
|
||||||
|
#: unit1.start_button_stop
|
||||||
|
msgid "Stop"
|
||||||
|
msgstr "Остановка"
|
||||||
|
|
||||||
|
#: unit1.start_button_strat
|
||||||
|
msgctxt "unit1.start_button_strat"
|
||||||
|
msgid "Start"
|
||||||
|
msgstr "Запуск"
|
||||||
|
|
||||||
|
#: unit1.unknown_room
|
||||||
|
msgid "Unknown"
|
||||||
|
msgstr "Неизвестно где..."
|
||||||
|
|
||||||
158
rooms.ini
|
|
@ -208,6 +208,162 @@ MMBN 6=2147425942
|
||||||
1407374883684352=Cyber Academy 2F Hallway
|
1407374883684352=Cyber Academy 2F Hallway
|
||||||
131072=Cyber Academy Class 6-1
|
131072=Cyber Academy Class 6-1
|
||||||
562949962596352=Class 6-1 Comp
|
562949962596352=Class 6-1 Comp
|
||||||
|
18446744073709486080=Title
|
||||||
|
0=ACDC Town
|
||||||
|
281474976841728=Class 6-2
|
||||||
|
844424939307008=Class 6-2 Comp
|
||||||
|
1125899916017664=Class 1-1 Comp
|
||||||
|
562949953552384=Class 1-1
|
||||||
|
844424930263040=Class 1-2
|
||||||
|
8388608=Robo Control Area 1
|
||||||
|
281474985099264=Robo Control Area 2
|
||||||
|
562949962858496=Central Area 3
|
||||||
|
2251799813816320=Mayor Cain's Office
|
||||||
|
1688849869438976=Bathroom Comp (Lan's Toilet)
|
||||||
|
9502720=Seaside Area 1
|
||||||
|
3659174706479104=Stuffed Toy Shop Comp
|
||||||
|
281474986213376=Seaside Area 2
|
||||||
|
844424939044864=Aquarium Home Page
|
||||||
|
562949962924032=Seaside Area 3
|
||||||
|
196608=Seaside Town
|
||||||
|
844424939372544=Water Machine Comp
|
||||||
|
2251799822860288=Fish Sticks Shop Comp
|
||||||
|
281474976907264=Aquarium 1
|
||||||
|
844424930328576=Auditorium (Aquarium Arena)
|
||||||
|
562949953617920=Aquarium 2
|
||||||
|
8454144=Aquarium Comp 1
|
||||||
|
281474985164800=Aquarium Comp 2
|
||||||
|
562949961875456=Aquarium Comp 3
|
||||||
|
2533274790526976=Research Lab 1
|
||||||
|
281474985885696=Lab's Comp 1
|
||||||
|
1125899906908160=AsterLand
|
||||||
|
1688849869504512=Popcorn Shop Comp
|
||||||
|
1125899907039232=Control Room (Aquarium)
|
||||||
|
2533274799570944=Security Camera Comp (Class 6-1)
|
||||||
|
262144=Green Town
|
||||||
|
1125899916083200=Symbol Comp (Green Town)
|
||||||
|
1407374892466176=Green Home Page (TRUTH Tablet)
|
||||||
|
9568256=Green Area 1
|
||||||
|
2814749776281600=Book Comp
|
||||||
|
281474976972800=Court Foyer
|
||||||
|
281474986278912=Green Area 2
|
||||||
|
281474986475520=Undernet Zero
|
||||||
|
562949953683456=Courtroom (Green Town)
|
||||||
|
844424930394112=The Punishment Room
|
||||||
|
562949962661888=Punishment Chair Comp
|
||||||
|
8519680=Judge Tree Area 1
|
||||||
|
281474985230336=Judge Tree Area 2
|
||||||
|
562949961940992=Judge Tree Area 3
|
||||||
|
327680=Admin
|
||||||
|
1970324846149632=Elevator Comp
|
||||||
|
281474977038336=Sky Town
|
||||||
|
3096224752992256=Fan Comp
|
||||||
|
3659174706413568=Heater Comp
|
||||||
|
3940649683124224=Shower Comp
|
||||||
|
3377699729702912=Air Conditioner Comp
|
||||||
|
2814749776347136=Oxygen Tank Comp
|
||||||
|
2533274799636480=Observation Comp
|
||||||
|
562949953748992=OpRoom (Sky City)
|
||||||
|
4222124659834880=Heliport Comp
|
||||||
|
281474986409984=Sky Area 2
|
||||||
|
9699328=Sky Area 1
|
||||||
|
844424930459648=Force Room
|
||||||
|
1688849869176832=Sky Home Page
|
||||||
|
9764864=Undernet Area 1
|
||||||
|
9240576=Lab's Comp 2
|
||||||
|
8585216=Mr. Weather Comp 1
|
||||||
|
281474985295872=Mr. Weather Comp 2
|
||||||
|
562949962006528=Mr. Weather Comp 3
|
||||||
|
281474977103872=WWW OP
|
||||||
|
562949963186176=Undernet Area 2
|
||||||
|
281474985951232=Vending Machine Comp
|
||||||
|
2814749767237632=Research Lab 2
|
||||||
|
3940649683189760=Dog House Comp
|
||||||
|
281474985623552=ACDC Home Page
|
||||||
|
562949963120640=ACDC Area
|
||||||
|
9633792=Underground Area 1
|
||||||
|
281474986344448=Underground Area 2
|
||||||
|
3377699729768448=Mascot Comp
|
||||||
|
8716288=Pavillion Comp 1
|
||||||
|
562949953814528=Seaside Hall
|
||||||
|
844424930525184=Green Hall
|
||||||
|
281474985426944=Pavillion Comp 2
|
||||||
|
1125899907235840=Sky Hall
|
||||||
|
562949962137600=Pavillion Comp 3
|
||||||
|
844424938848256=Pavillion Comp 4
|
||||||
|
1125899915558912=Copy Bot Comp
|
||||||
|
281474976710656=ACDC Class 6-1 ?
|
||||||
|
|
||||||
[Spoils MMBN 6]
|
[Spoils MMBN 6]
|
||||||
562949962596352=700z
|
562949962596352=700z,Thunder *
|
||||||
|
9175040=600z
|
||||||
|
9437184=MiniEnergy,5000z [WWWID]
|
||||||
|
281474986147840=Reg UP2,Copy Damage,Sub memory [Btl]
|
||||||
|
844424939307008={PMD},Reg UP2
|
||||||
|
1125899916017664=Full Energy
|
||||||
|
8388608=Water Data,Spreader1 M,HP Memory
|
||||||
|
281474985099264=Reg UP2,Rocovery 30 *,ImgData [story]
|
||||||
|
562949962858496=Hi Cannon L,Elec Sword {PMD}
|
||||||
|
1688849869438976=Unlocker
|
||||||
|
3659174706479104=Dubl Shot *,1000z
|
||||||
|
281474986213376=Panel Return *,Vulcan 2D,Attack +1 [Tengu]
|
||||||
|
844424939044864=Tornado L {PMD},Geddon A [Pnl Return],HP Memory
|
||||||
|
562949962924032=Wide Blade B {PMD},Reg Up 2,HP Memory {S},Bamboo Sword W {S},Recov 80 K {S},Barr 100 H {S},Time Bomb 1 {S}
|
||||||
|
844424939372544=Barr 100 H
|
||||||
|
2251799822860288=White Capsule *,Unlocker
|
||||||
|
844424930328576=Reg UP1
|
||||||
|
8454144=Life Sync *,HP Memory
|
||||||
|
281474985164800=Reg UP1,FstBarr
|
||||||
|
562949961875456=HP + 50,Hi Cannon M
|
||||||
|
281474985885696=FireHit1 F,Fan *
|
||||||
|
9502720=Sub Memory [Aqua],HP Memory Aquaman has no use for it ;p
|
||||||
|
1125899906908160=Full Energy [c]
|
||||||
|
1407374883684352=QuizBook
|
||||||
|
1688849869504512=HP memory
|
||||||
|
2533274799570944=HP Memory [story],Expo Folder [story],Jungle,3000z
|
||||||
|
1125899916083200=Reg UP 2,2400z
|
||||||
|
1407374892466176=BlkBomb F {PMD},HP Memory
|
||||||
|
2814749776281600=Yoyo *,Sub Memory
|
||||||
|
9568256=Lance W {PMD},Spreader2 C
|
||||||
|
281474986278912=Speed +1,Auth Data,HP Memory,Holy Panel A (WWWID)
|
||||||
|
281474986475520=Reg UP 2 [Tengu]
|
||||||
|
281474976972800=87341489
|
||||||
|
562949962661888=Guardion O {PMD},Full Energy
|
||||||
|
8519680=ComingRd *,StepSword L
|
||||||
|
281474985230336=YoYo N,HP Memory
|
||||||
|
562949961940992=Reg UP 3,Expansion Memory
|
||||||
|
1970324846149632=Speed +1
|
||||||
|
3096224752992256=1600z,OilBody
|
||||||
|
3659174706413568=1000z,Charge +1
|
||||||
|
3940649683124224=Rush Food,Reg UP1,1 BugFrags
|
||||||
|
3377699729702912=ColorPt *,Reg UP 1
|
||||||
|
562949953748992=HP Memory
|
||||||
|
2814749776347136=3 BugFrags,BugFix P {PMD}
|
||||||
|
2533274799636480=Reg UP2,3000z
|
||||||
|
4222124659834880=HP +50,Unlocker
|
||||||
|
281474986409984=Reg UP3,M-Cannon S,10000z {YMD},Vacuum Data
|
||||||
|
9699328=Fish,Spin Blue {PMD},HP+100
|
||||||
|
1688849869176832=Hp Link,Vulcan3 A,AutoHeal
|
||||||
|
9764864=Reg UP 1
|
||||||
|
9240576=Expansion Memory,StepSword B {PMD}
|
||||||
|
8585216=Reg UP 1,Spreader3 S
|
||||||
|
281474985295872=Shield,HP Memory
|
||||||
|
562949962006528=Spin Pink,Recov120 F
|
||||||
|
562949963186176=Recov150 M,AntiDmg {PMD}
|
||||||
|
281474985951232=Battery,1200z
|
||||||
|
65536=HP Memory {story}
|
||||||
|
3940649683189760=3 Bug Frags,GoingRd *
|
||||||
|
0=HP Memory
|
||||||
|
281474985623552=Ice Seed *,VarSwrd W {PMD}
|
||||||
|
562949963120640=Atk+30 * {PMD},ACDCKyDt (story),Spin White (Rush),HP +300 (WWWID)
|
||||||
|
9633792=Air Shoes {PMD}
|
||||||
|
2251799813816320=Reg UP 1
|
||||||
|
3377699729768448=Reg UP 1,M-Cannon *
|
||||||
|
562949953814528=Reg UP 2
|
||||||
|
8716288=Recov200 Z,Spreader3 *
|
||||||
|
281474985426944=Reg UP 2,GunDelS2 E
|
||||||
|
562949962137600=HP Memory,Attack+1
|
||||||
|
844424938848256=6000z,Long Blade B
|
||||||
|
|
||||||
|
[Settings]
|
||||||
|
Language=ru
|
||||||
|
|
|
||||||
378
unit1.lfm
|
|
@ -1,11 +1,12 @@
|
||||||
object Form1: TForm1
|
object Form1: TForm1
|
||||||
Left = 1066
|
Left = 821
|
||||||
Height = 448
|
Height = 478
|
||||||
Top = 323
|
Top = 472
|
||||||
Width = 606
|
Width = 792
|
||||||
|
Anchors = [akTop]
|
||||||
Caption = 'MMBN5-6M'
|
Caption = 'MMBN5-6M'
|
||||||
ClientHeight = 448
|
ClientHeight = 478
|
||||||
ClientWidth = 606
|
ClientWidth = 792
|
||||||
Font.CharSet = ANSI_CHARSET
|
Font.CharSet = ANSI_CHARSET
|
||||||
Font.Height = -16
|
Font.Height = -16
|
||||||
Font.Name = 'Liberation Mono'
|
Font.Name = 'Liberation Mono'
|
||||||
|
|
@ -14,16 +15,15 @@ object Form1: TForm1
|
||||||
OnClose = FormClose
|
OnClose = FormClose
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
Position = poScreenCenter
|
Position = poScreenCenter
|
||||||
LCLVersion = '2.2.6.0'
|
LCLVersion = '3.2.0.0'
|
||||||
object room_name_label: TLabel
|
object room_name_label: TLabel
|
||||||
AnchorSideLeft.Control = start_stop_button
|
AnchorSideLeft.Control = Splitter2
|
||||||
AnchorSideLeft.Side = asrBottom
|
AnchorSideLeft.Side = asrBottom
|
||||||
AnchorSideTop.Control = Owner
|
AnchorSideTop.Control = Owner
|
||||||
Left = 192
|
Left = 231
|
||||||
Height = 18
|
Height = 18
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 320
|
Width = 320
|
||||||
BorderSpacing.Left = 8
|
|
||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
Caption = 'Run the game, then press "Start"'
|
Caption = 'Run the game, then press "Start"'
|
||||||
Color = clGradientInactiveCaption
|
Color = clGradientInactiveCaption
|
||||||
|
|
@ -31,18 +31,20 @@ object Form1: TForm1
|
||||||
Transparent = False
|
Transparent = False
|
||||||
end
|
end
|
||||||
object map_image: TImage
|
object map_image: TImage
|
||||||
AnchorSideLeft.Control = room_name_label
|
AnchorSideLeft.Control = Splitter2
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
AnchorSideTop.Control = room_name_label
|
AnchorSideTop.Control = room_name_label
|
||||||
AnchorSideTop.Side = asrBottom
|
AnchorSideTop.Side = asrBottom
|
||||||
AnchorSideRight.Control = Owner
|
AnchorSideRight.Control = Owner
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
AnchorSideBottom.Control = Owner
|
AnchorSideBottom.Control = Owner
|
||||||
AnchorSideBottom.Side = asrBottom
|
AnchorSideBottom.Side = asrBottom
|
||||||
Left = 192
|
Left = 232
|
||||||
Height = 406
|
Height = 436
|
||||||
Top = 34
|
Top = 34
|
||||||
Width = 406
|
Width = 552
|
||||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
|
BorderSpacing.Left = 1
|
||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
BorderSpacing.Right = 8
|
BorderSpacing.Right = 8
|
||||||
BorderSpacing.Bottom = 8
|
BorderSpacing.Bottom = 8
|
||||||
|
|
@ -51,153 +53,231 @@ object Form1: TForm1
|
||||||
Proportional = True
|
Proportional = True
|
||||||
Stretch = True
|
Stretch = True
|
||||||
end
|
end
|
||||||
object start_stop_button: TSpeedButton
|
object Splitter1: TSplitter
|
||||||
AnchorSideLeft.Control = Owner
|
Left = 787
|
||||||
AnchorSideTop.Control = gamebox
|
Height = 478
|
||||||
AnchorSideTop.Side = asrBottom
|
Top = 0
|
||||||
Left = 8
|
Width = 5
|
||||||
Height = 30
|
Align = alRight
|
||||||
Top = 40
|
ResizeAnchor = akRight
|
||||||
Width = 176
|
|
||||||
AllowAllUp = True
|
|
||||||
BorderSpacing.Left = 8
|
|
||||||
BorderSpacing.Top = 8
|
|
||||||
Caption = 'Start'
|
|
||||||
GroupIndex = 1
|
|
||||||
Transparent = False
|
|
||||||
OnClick = start_stop_buttonClick
|
|
||||||
end
|
end
|
||||||
object edit_room_button: TButton
|
object Panel1: TPanel
|
||||||
AnchorSideLeft.Control = Owner
|
Left = 0
|
||||||
AnchorSideTop.Control = start_stop_button
|
Height = 478
|
||||||
AnchorSideTop.Side = asrBottom
|
Top = 0
|
||||||
AnchorSideRight.Control = map_image
|
Width = 227
|
||||||
Left = 8
|
Align = alLeft
|
||||||
Height = 30
|
BevelOuter = bvNone
|
||||||
Top = 78
|
ClientHeight = 478
|
||||||
Width = 176
|
ClientWidth = 227
|
||||||
Anchors = [akTop, akLeft, akRight]
|
|
||||||
BorderSpacing.Left = 8
|
|
||||||
BorderSpacing.Top = 8
|
|
||||||
BorderSpacing.Right = 8
|
|
||||||
Caption = 'Edit Room'
|
|
||||||
OnClick = edit_room_buttonClick
|
|
||||||
TabOrder = 0
|
|
||||||
end
|
|
||||||
object spoils_listbox: TListBox
|
|
||||||
AnchorSideLeft.Control = Owner
|
|
||||||
AnchorSideTop.Control = spoils_label
|
|
||||||
AnchorSideTop.Side = asrBottom
|
|
||||||
AnchorSideRight.Control = map_image
|
|
||||||
AnchorSideBottom.Control = plus_spoil
|
|
||||||
Left = 8
|
|
||||||
Height = 250
|
|
||||||
Top = 142
|
|
||||||
Width = 176
|
|
||||||
Anchors = [akTop, akLeft, akRight]
|
|
||||||
BorderSpacing.Left = 8
|
|
||||||
BorderSpacing.Top = 8
|
|
||||||
BorderSpacing.Right = 8
|
|
||||||
BorderSpacing.Bottom = 8
|
|
||||||
BorderStyle = bsNone
|
|
||||||
Color = clGradientInactiveCaption
|
|
||||||
ItemHeight = 0
|
|
||||||
OnDblClick = spoils_listboxDblClick
|
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
|
object plus_spoil: TButton
|
||||||
|
AnchorSideLeft.Control = Panel1
|
||||||
|
AnchorSideBottom.Control = Panel1
|
||||||
|
AnchorSideBottom.Side = asrBottom
|
||||||
|
Left = 8
|
||||||
|
Height = 40
|
||||||
|
Top = 430
|
||||||
|
Width = 104
|
||||||
|
Anchors = [akLeft, akBottom]
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Bottom = 8
|
||||||
|
Caption = '+'
|
||||||
|
TabOrder = 0
|
||||||
|
OnClick = plus_spoilClick
|
||||||
|
end
|
||||||
|
object minus_spoil1: TButton
|
||||||
|
AnchorSideLeft.Control = plus_spoil
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = plus_spoil
|
||||||
|
AnchorSideRight.Control = Panel1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
AnchorSideBottom.Control = Panel1
|
||||||
|
AnchorSideBottom.Side = asrBottom
|
||||||
|
Left = 120
|
||||||
|
Height = 40
|
||||||
|
Top = 430
|
||||||
|
Width = 103
|
||||||
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
BorderSpacing.Bottom = 8
|
||||||
|
Caption = '-'
|
||||||
|
TabOrder = 1
|
||||||
|
OnClick = minus_spoil1Click
|
||||||
|
end
|
||||||
|
object map_stretch_checkbox: TCheckBox
|
||||||
|
AnchorSideLeft.Control = Panel1
|
||||||
|
AnchorSideTop.Control = spoils_listbox
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = Panel1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
AnchorSideBottom.Control = plus_spoil
|
||||||
|
Left = 8
|
||||||
|
Height = 22
|
||||||
|
Top = 400
|
||||||
|
Width = 215
|
||||||
|
Anchors = [akLeft, akRight, akBottom]
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Top = 8
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
BorderSpacing.Bottom = 8
|
||||||
|
Caption = 'Stretch'
|
||||||
|
TabOrder = 2
|
||||||
|
OnChange = map_stretch_checkboxChange
|
||||||
|
end
|
||||||
|
object spoils_listbox: TListBox
|
||||||
|
AnchorSideLeft.Control = Panel1
|
||||||
|
AnchorSideTop.Control = spoils_label
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = Panel1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
AnchorSideBottom.Control = plus_spoil
|
||||||
|
Left = 8
|
||||||
|
Height = 250
|
||||||
|
Top = 142
|
||||||
|
Width = 215
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Top = 8
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
BorderSpacing.Bottom = 8
|
||||||
|
BorderStyle = bsNone
|
||||||
|
Color = clGradientInactiveCaption
|
||||||
|
ItemHeight = 0
|
||||||
|
TabOrder = 3
|
||||||
|
OnDblClick = spoils_listboxDblClick
|
||||||
|
end
|
||||||
|
object spoils_label: TLabel
|
||||||
|
AnchorSideLeft.Control = Panel1
|
||||||
|
AnchorSideTop.Control = edit_room_button
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = Panel1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 8
|
||||||
|
Height = 18
|
||||||
|
Top = 116
|
||||||
|
Width = 215
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Top = 8
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
Caption = 'Spoils:'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object edit_room_button: TButton
|
||||||
|
AnchorSideLeft.Control = Panel1
|
||||||
|
AnchorSideTop.Control = start_stop_button
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = Panel1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 8
|
||||||
|
Height = 30
|
||||||
|
Top = 78
|
||||||
|
Width = 215
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Top = 8
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
Caption = 'Edit Room'
|
||||||
|
TabOrder = 4
|
||||||
|
OnClick = edit_room_buttonClick
|
||||||
|
end
|
||||||
|
object start_stop_button: TSpeedButton
|
||||||
|
AnchorSideLeft.Control = Panel1
|
||||||
|
AnchorSideTop.Control = gamebox
|
||||||
|
AnchorSideTop.Side = asrBottom
|
||||||
|
AnchorSideRight.Control = Panel1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 8
|
||||||
|
Height = 30
|
||||||
|
Top = 40
|
||||||
|
Width = 215
|
||||||
|
AllowAllUp = True
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Top = 8
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
Caption = 'Start'
|
||||||
|
GroupIndex = 1
|
||||||
|
Transparent = False
|
||||||
|
OnClick = start_stop_buttonClick
|
||||||
|
end
|
||||||
|
object gamebox: TComboBox
|
||||||
|
AnchorSideLeft.Control = Label1
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = Panel1
|
||||||
|
AnchorSideRight.Control = Panel1
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
AnchorSideBottom.Control = start_stop_button
|
||||||
|
Left = 66
|
||||||
|
Height = 24
|
||||||
|
Top = 8
|
||||||
|
Width = 157
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Top = 8
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
BorderSpacing.Bottom = 8
|
||||||
|
ItemHeight = 18
|
||||||
|
ItemIndex = 0
|
||||||
|
Items.Strings = (
|
||||||
|
'MMBN 5'
|
||||||
|
'MMBN 6'
|
||||||
|
)
|
||||||
|
ReadOnly = True
|
||||||
|
Style = csOwnerDrawFixed
|
||||||
|
TabOrder = 5
|
||||||
|
Text = 'MMBN 5'
|
||||||
|
OnSelect = gameboxSelect
|
||||||
|
end
|
||||||
|
object Label1: TLabel
|
||||||
|
AnchorSideLeft.Control = Panel1
|
||||||
|
AnchorSideTop.Control = Panel1
|
||||||
|
AnchorSideBottom.Control = gamebox
|
||||||
|
AnchorSideBottom.Side = asrBottom
|
||||||
|
Left = 8
|
||||||
|
Height = 18
|
||||||
|
Top = 11
|
||||||
|
Width = 50
|
||||||
|
BorderSpacing.Left = 8
|
||||||
|
BorderSpacing.Top = 11
|
||||||
|
Caption = 'Game:'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object spoils_label: TLabel
|
object Splitter2: TSplitter
|
||||||
|
Left = 227
|
||||||
|
Height = 478
|
||||||
|
Top = 0
|
||||||
|
Width = 4
|
||||||
|
OnMoved = Splitter2Moved
|
||||||
|
ResizeStyle = rsLine
|
||||||
|
end
|
||||||
|
object langbox: TComboBox
|
||||||
AnchorSideLeft.Control = Owner
|
AnchorSideLeft.Control = Owner
|
||||||
AnchorSideTop.Control = edit_room_button
|
|
||||||
AnchorSideTop.Side = asrBottom
|
|
||||||
AnchorSideRight.Control = map_image
|
|
||||||
Left = 8
|
|
||||||
Height = 18
|
|
||||||
Top = 116
|
|
||||||
Width = 176
|
|
||||||
Anchors = [akTop, akLeft, akRight]
|
|
||||||
BorderSpacing.Left = 8
|
|
||||||
BorderSpacing.Top = 8
|
|
||||||
BorderSpacing.Right = 8
|
|
||||||
Caption = 'Spoils:'
|
|
||||||
ParentColor = False
|
|
||||||
end
|
|
||||||
object plus_spoil: TButton
|
|
||||||
AnchorSideLeft.Control = Owner
|
|
||||||
AnchorSideBottom.Control = Owner
|
|
||||||
AnchorSideBottom.Side = asrBottom
|
|
||||||
Left = 8
|
|
||||||
Height = 40
|
|
||||||
Top = 400
|
|
||||||
Width = 56
|
|
||||||
Anchors = [akLeft, akBottom]
|
|
||||||
BorderSpacing.Left = 8
|
|
||||||
BorderSpacing.Bottom = 8
|
|
||||||
Caption = '+'
|
|
||||||
OnClick = plus_spoilClick
|
|
||||||
TabOrder = 2
|
|
||||||
end
|
|
||||||
object minus_spoil1: TButton
|
|
||||||
AnchorSideLeft.Control = plus_spoil
|
|
||||||
AnchorSideLeft.Side = asrBottom
|
AnchorSideLeft.Side = asrBottom
|
||||||
AnchorSideRight.Control = map_image
|
|
||||||
AnchorSideBottom.Control = Owner
|
|
||||||
AnchorSideBottom.Side = asrBottom
|
|
||||||
Left = 72
|
|
||||||
Height = 40
|
|
||||||
Top = 400
|
|
||||||
Width = 112
|
|
||||||
Anchors = [akLeft, akRight, akBottom]
|
|
||||||
BorderSpacing.Left = 8
|
|
||||||
BorderSpacing.Right = 8
|
|
||||||
BorderSpacing.Bottom = 8
|
|
||||||
Caption = '-'
|
|
||||||
OnClick = minus_spoil1Click
|
|
||||||
TabOrder = 3
|
|
||||||
end
|
|
||||||
object map_stretch_checkbox: TCheckBox
|
|
||||||
AnchorSideLeft.Control = Owner
|
|
||||||
AnchorSideTop.Control = spoils_listbox
|
|
||||||
AnchorSideTop.Side = asrBottom
|
|
||||||
AnchorSideRight.Control = map_image
|
|
||||||
AnchorSideBottom.Control = plus_spoil
|
|
||||||
Left = 8
|
|
||||||
Height = 22
|
|
||||||
Top = 370
|
|
||||||
Width = 176
|
|
||||||
Anchors = [akLeft, akRight, akBottom]
|
|
||||||
BorderSpacing.Left = 8
|
|
||||||
BorderSpacing.Top = 8
|
|
||||||
BorderSpacing.Right = 8
|
|
||||||
BorderSpacing.Bottom = 8
|
|
||||||
Caption = 'Stretch'
|
|
||||||
OnChange = map_stretch_checkboxChange
|
|
||||||
TabOrder = 4
|
|
||||||
end
|
|
||||||
object gamebox: TComboBox
|
|
||||||
AnchorSideLeft.Control = Owner
|
|
||||||
AnchorSideTop.Control = Owner
|
AnchorSideTop.Control = Owner
|
||||||
AnchorSideRight.Control = start_stop_button
|
AnchorSideRight.Control = Owner
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
AnchorSideBottom.Control = start_stop_button
|
Left = 734
|
||||||
Left = 8
|
Height = 26
|
||||||
Height = 24
|
Top = 1
|
||||||
Top = 8
|
Width = 50
|
||||||
Width = 176
|
Anchors = [akTop, akRight]
|
||||||
Anchors = [akTop, akLeft, akRight]
|
BorderSpacing.Top = 1
|
||||||
BorderSpacing.Left = 8
|
BorderSpacing.Right = 8
|
||||||
BorderSpacing.Top = 8
|
|
||||||
BorderSpacing.Bottom = 8
|
|
||||||
ItemHeight = 18
|
ItemHeight = 18
|
||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
Items.Strings = (
|
Items.Strings = (
|
||||||
'MMBN 5'
|
'en'
|
||||||
'MMBN 6'
|
'ru'
|
||||||
)
|
)
|
||||||
OnSelect = gameboxSelect
|
|
||||||
ReadOnly = True
|
ReadOnly = True
|
||||||
Style = csOwnerDrawFixed
|
Style = csDropDownList
|
||||||
TabOrder = 5
|
TabOrder = 3
|
||||||
Text = 'MMBN 5'
|
Text = 'en'
|
||||||
|
OnSelect = langboxSelect
|
||||||
end
|
end
|
||||||
object Timer1: TTimer
|
object Timer1: TTimer
|
||||||
Enabled = False
|
Enabled = False
|
||||||
|
|
|
||||||
13
unit1.lrj
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
{"version":1,"strings":[
|
||||||
|
{"hash":24216973,"name":"tform1.caption","sourcebytes":[77,77,66,78,53,45,54,77],"value":"MMBN5-6M"},
|
||||||
|
{"hash":223940658,"name":"tform1.room_name_label.caption","sourcebytes":[82,117,110,32,116,104,101,32,103,97,109,101,44,32,116,104,101,110,32,112,114,101,115,115,32,34,83,116,97,114,116,34],"value":"Run the game, then press \"Start\""},
|
||||||
|
{"hash":43,"name":"tform1.plus_spoil.caption","sourcebytes":[43],"value":"+"},
|
||||||
|
{"hash":45,"name":"tform1.minus_spoil1.caption","sourcebytes":[45],"value":"-"},
|
||||||
|
{"hash":179882696,"name":"tform1.map_stretch_checkbox.caption","sourcebytes":[83,116,114,101,116,99,104],"value":"Stretch"},
|
||||||
|
{"hash":175506234,"name":"tform1.spoils_label.caption","sourcebytes":[83,112,111,105,108,115,58],"value":"Spoils:"},
|
||||||
|
{"hash":6676461,"name":"tform1.edit_room_button.caption","sourcebytes":[69,100,105,116,32,82,111,111,109],"value":"Edit Room"},
|
||||||
|
{"hash":5941396,"name":"tform1.start_stop_button.caption","sourcebytes":[83,116,97,114,116],"value":"Start"},
|
||||||
|
{"hash":86077493,"name":"tform1.gamebox.text","sourcebytes":[77,77,66,78,32,53],"value":"MMBN 5"},
|
||||||
|
{"hash":5079946,"name":"tform1.label1.caption","sourcebytes":[71,97,109,101,58],"value":"Game:"},
|
||||||
|
{"hash":1726,"name":"tform1.langbox.text","sourcebytes":[101,110],"value":"en"}
|
||||||
|
]}
|
||||||
119
unit1.pas
|
|
@ -6,7 +6,7 @@ interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
|
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
|
||||||
Buttons, Grids, IniFiles, Windows;
|
Buttons, Grids, IniFiles, Windows, DefaultTranslator, LCLTranslator, FileUtil;
|
||||||
|
|
||||||
type
|
type
|
||||||
TWMHotKey = packed record
|
TWMHotKey = packed record
|
||||||
|
|
@ -22,25 +22,32 @@ type
|
||||||
{ TForm1 }
|
{ TForm1 }
|
||||||
|
|
||||||
TForm1 = class ( TForm )
|
TForm1 = class ( TForm )
|
||||||
gamebox :TComboBox;
|
langbox :TComboBox;
|
||||||
map_stretch_checkbox :TCheckBox;
|
|
||||||
plus_spoil :TButton;
|
|
||||||
edit_room_button :TButton;
|
edit_room_button :TButton;
|
||||||
|
gamebox :TComboBox;
|
||||||
|
Label1 :TLabel;
|
||||||
|
map_stretch_checkbox :TCheckBox;
|
||||||
minus_spoil1 :TButton;
|
minus_spoil1 :TButton;
|
||||||
spoils_label :TLabel;
|
Panel1 :TPanel;
|
||||||
spoils_listbox :TListBox;
|
plus_spoil :TButton;
|
||||||
|
Splitter1 :TSplitter;
|
||||||
map_image :TImage;
|
map_image :TImage;
|
||||||
room_name_label :TLabel;
|
room_name_label :TLabel;
|
||||||
|
Splitter2 :TSplitter;
|
||||||
|
spoils_label :TLabel;
|
||||||
|
spoils_listbox :TListBox;
|
||||||
start_stop_button :TSpeedButton;
|
start_stop_button :TSpeedButton;
|
||||||
Timer1 :TTimer;
|
Timer1 :TTimer;
|
||||||
procedure edit_room_buttonClick ( Sender :TObject );
|
procedure edit_room_buttonClick ( Sender :TObject );
|
||||||
procedure FormClose ( Sender :TObject; var CloseAction :TCloseAction );
|
procedure FormClose ( Sender :TObject; var CloseAction :TCloseAction );
|
||||||
procedure FormCreate ( Sender :TObject );
|
procedure FormCreate ( Sender :TObject );
|
||||||
procedure gameboxSelect ( Sender :TObject );
|
procedure gameboxSelect ( Sender :TObject );
|
||||||
|
procedure langboxSelect ( Sender :TObject );
|
||||||
procedure map_imagePaint ( Sender :TObject );
|
procedure map_imagePaint ( Sender :TObject );
|
||||||
procedure map_stretch_checkboxChange ( Sender :TObject );
|
procedure map_stretch_checkboxChange ( Sender :TObject );
|
||||||
procedure minus_spoil1Click ( Sender :TObject );
|
procedure minus_spoil1Click ( Sender :TObject );
|
||||||
procedure plus_spoilClick ( Sender :TObject );
|
procedure plus_spoilClick ( Sender :TObject );
|
||||||
|
procedure Splitter2Moved ( Sender :TObject );
|
||||||
procedure spoils_listboxDblClick ( Sender :TObject );
|
procedure spoils_listboxDblClick ( Sender :TObject );
|
||||||
procedure start_stop_buttonClick ( Sender :TObject );
|
procedure start_stop_buttonClick ( Sender :TObject );
|
||||||
procedure Timer1Timer ( Sender :TObject );
|
procedure Timer1Timer ( Sender :TObject );
|
||||||
|
|
@ -53,6 +60,25 @@ PROTECTED
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
resourcestring
|
||||||
|
ADDING_ITEM = 'Adding item to Room #';
|
||||||
|
ENTER_ITEM_NAME = 'Enter item''s name';
|
||||||
|
EDITING_ITEM = 'Editing item in Room #';
|
||||||
|
EDITING_ROOM = 'Editing Room #';
|
||||||
|
ENTER_ROOM_NAME = 'Enter this Room''s name';
|
||||||
|
START_BUTTON_STRAT = 'Start';
|
||||||
|
START_BUTTON_STOP = 'Stop';
|
||||||
|
APP_CAPTION = 'MMBN5-6M: Reading from process ID';
|
||||||
|
ROOM_NUMBER = 'Room #';
|
||||||
|
RUN_THE_GAME_NOTICE = 'Run the game, then press "Start"';
|
||||||
|
ERROR_GAME_NOT_RUNNING = 'Error. Make sure the game''s running.';
|
||||||
|
ERROR_GAME_MEMORY_NOT_READ = 'Error. Game''s memory not read.';
|
||||||
|
ERROR_UNABLE_TO_READ_GAME_MEMORY = 'Error. Can''t read game''s memory.';
|
||||||
|
ERROR_HOTKEY_REGISTRATION_FAILED = 'HotKey registration failed. You won''t be able to press Win+Y to temporarily view map in full screen.';
|
||||||
|
UNKNOWN_ROOM = 'Unknown';
|
||||||
|
|
||||||
|
|
||||||
var
|
var
|
||||||
Form1 :TForm1;
|
Form1 :TForm1;
|
||||||
|
|
||||||
|
|
@ -76,8 +102,7 @@ begin
|
||||||
|
|
||||||
while INTEGER ( ContinueLoop ) <> 0 do
|
while INTEGER ( ContinueLoop ) <> 0 do
|
||||||
begin
|
begin
|
||||||
if ( ( UpperCase ( ExtractFileName ( FProcessEntry32.szExeFile ) ) = UpperCase ( ExeFileName ) )
|
if ( ( UpperCase ( ExtractFileName ( FProcessEntry32.szExeFile ) ) = UpperCase ( ExeFileName ) ) OR( UpperCase ( FProcessEntry32.szExeFile ) = UpperCase ( ExeFileName ) ) ) then begin
|
||||||
OR( UpperCase ( FProcessEntry32.szExeFile ) = UpperCase ( ExeFileName ) ) ) then begin
|
|
||||||
Result := FProcessEntry32.th32ProcessID;
|
Result := FProcessEntry32.th32ProcessID;
|
||||||
Break;
|
Break;
|
||||||
end;
|
end;
|
||||||
|
|
@ -118,8 +143,8 @@ var
|
||||||
hProcess :THandle;
|
hProcess :THandle;
|
||||||
ROOMS :TIniFile; // contains room labels
|
ROOMS :TIniFile; // contains room labels
|
||||||
process_list :TStrings;
|
process_list :TStrings;
|
||||||
room :QWORD = -1; // contains current room 16-bit value
|
room :QWORD = 18446744073709551615; // contains current room 16-bit value
|
||||||
last_room :QWORD = -1;
|
last_room :QWORD = 18446744073709551615;
|
||||||
room_name :STRING;
|
room_name :STRING;
|
||||||
new_room :bool;
|
new_room :bool;
|
||||||
spoils_list :STRING;
|
spoils_list :STRING;
|
||||||
|
|
@ -138,12 +163,17 @@ is_cyberworld :BOOLEAN = False;
|
||||||
var
|
var
|
||||||
x, y, w, h :INTEGER;
|
x, y, w, h :INTEGER;
|
||||||
state :TWindowState;
|
state :TWindowState;
|
||||||
|
languages :TStrings;
|
||||||
|
current_language :STRING;
|
||||||
|
|
||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
|
|
||||||
{ TForm1 }
|
{ TForm1 }
|
||||||
|
|
||||||
procedure TForm1.FormCreate ( Sender :TObject );
|
procedure TForm1.FormCreate ( Sender :TObject );
|
||||||
|
var
|
||||||
|
i :INTEGER;
|
||||||
begin
|
begin
|
||||||
current_game_pointer := mmbn5_pointer;
|
current_game_pointer := mmbn5_pointer;
|
||||||
// open ini file and create a list to hold processes
|
// open ini file and create a list to hold processes
|
||||||
|
|
@ -151,7 +181,18 @@ begin
|
||||||
process_list := TStringList.Create ( );
|
process_list := TStringList.Create ( );
|
||||||
spoils_listbox.Height := 0;
|
spoils_listbox.Height := 0;
|
||||||
if NOT RegisterHotKey ( Handle, 111000, MOD_WIN, VK_Y ) then
|
if NOT RegisterHotKey ( Handle, 111000, MOD_WIN, VK_Y ) then
|
||||||
ShowMessage ( 'HotKey registration failed. You won''t be able to press Win+Y to temporarily view map in full screen.' );
|
ShowMessage ( ERROR_HOTKEY_REGISTRATION_FAILED );
|
||||||
|
|
||||||
|
// translations
|
||||||
|
languages := TStringList.Create ( );
|
||||||
|
current_language := ROOMS.ReadString ( 'Settings', 'Language', 'en' );
|
||||||
|
FindAllFiles ( languages, 'po', '*.po', False );
|
||||||
|
for i := 0 to languages.Count -1 do begin
|
||||||
|
languages[i] := languages [i].Replace ( 'po\mmbn56mm.', '' ).Replace ( '.po', '' );
|
||||||
|
end;
|
||||||
|
langbox.Items := languages;
|
||||||
|
langbox.ItemIndex := langbox.Items.IndexOf ( current_language );
|
||||||
|
SetDefaultLang ( current_language, 'po' );
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -167,6 +208,14 @@ begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TForm1.langboxSelect ( Sender :TObject );
|
||||||
|
begin
|
||||||
|
current_language := langbox.Items [langbox.ItemIndex];
|
||||||
|
SetDefaultLang ( current_language, 'po' );
|
||||||
|
ROOMS.WriteString ( 'Settings', 'Language', current_language );
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TForm1.map_imagePaint ( Sender :TObject );
|
procedure TForm1.map_imagePaint ( Sender :TObject );
|
||||||
begin
|
begin
|
||||||
//map_image.Canvas.Brush.Style := bsClear;
|
//map_image.Canvas.Brush.Style := bsClear;
|
||||||
|
|
@ -182,7 +231,7 @@ end;
|
||||||
|
|
||||||
procedure TForm1.minus_spoil1Click ( Sender :TObject );
|
procedure TForm1.minus_spoil1Click ( Sender :TObject );
|
||||||
var
|
var
|
||||||
Txt :STRING;
|
Txt :STRING = '';
|
||||||
i :INTEGER;
|
i :INTEGER;
|
||||||
begin
|
begin
|
||||||
if ( spoils_listbox.ItemIndex > -1 ) then begin
|
if ( spoils_listbox.ItemIndex > -1 ) then begin
|
||||||
|
|
@ -205,11 +254,11 @@ end;
|
||||||
|
|
||||||
procedure TForm1.plus_spoilClick ( Sender :TObject );
|
procedure TForm1.plus_spoilClick ( Sender :TObject );
|
||||||
var
|
var
|
||||||
new_spoil_name :STRING;
|
new_spoil_name :STRING = '';
|
||||||
Txt :STRING;
|
Txt :STRING = '';
|
||||||
i :INTEGER;
|
i :INTEGER;
|
||||||
begin
|
begin
|
||||||
if InputQuery ( 'Adding item to Room #' + IntToStr ( room ), 'Enter item''s name', new_spoil_name ) then begin
|
if InputQuery ( ADDING_ITEM + IntToStr ( room ), ENTER_ITEM_NAME, new_spoil_name ) then begin
|
||||||
spoils_listbox.Items.Add ( new_spoil_name );
|
spoils_listbox.Items.Add ( new_spoil_name );
|
||||||
for i := 0 to spoils_listbox.Items.Count - 1 do begin
|
for i := 0 to spoils_listbox.Items.Count - 1 do begin
|
||||||
if i < spoils_listbox.Items.Count - 1 then
|
if i < spoils_listbox.Items.Count - 1 then
|
||||||
|
|
@ -227,16 +276,22 @@ begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TForm1.Splitter2Moved ( Sender :TObject );
|
||||||
|
begin
|
||||||
|
plus_spoil.Width := Round ( Panel1.Width/2 ) -12;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TForm1.spoils_listboxDblClick ( Sender :TObject );
|
procedure TForm1.spoils_listboxDblClick ( Sender :TObject );
|
||||||
var
|
var
|
||||||
new_spoil_name :STRING;
|
new_spoil_name :STRING;
|
||||||
var
|
var
|
||||||
Txt :STRING;
|
Txt :STRING = '';
|
||||||
i :INTEGER;
|
i :INTEGER;
|
||||||
begin
|
begin
|
||||||
if ( spoils_listbox.ItemIndex > -1 ) then begin
|
if ( spoils_listbox.ItemIndex > -1 ) then begin
|
||||||
new_spoil_name := spoils_listbox.Items [spoils_listbox.ItemIndex];
|
new_spoil_name := spoils_listbox.Items [spoils_listbox.ItemIndex];
|
||||||
if InputQuery ( 'Editing item in Room #' + IntToStr ( room ), 'Enter item''s name', new_spoil_name ) then begin
|
if InputQuery ( EDITING_ITEM + IntToStr ( room ), ENTER_ITEM_NAME, new_spoil_name ) then begin
|
||||||
spoils_listbox.Items[spoils_listbox.ItemIndex] := new_spoil_name;
|
spoils_listbox.Items[spoils_listbox.ItemIndex] := new_spoil_name;
|
||||||
for i := 0 to spoils_listbox.Items.Count - 1 do begin
|
for i := 0 to spoils_listbox.Items.Count - 1 do begin
|
||||||
if i < spoils_listbox.Items.Count - 1 then
|
if i < spoils_listbox.Items.Count - 1 then
|
||||||
|
|
@ -262,22 +317,22 @@ var
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if start_stop_button.Down = False then begin
|
if start_stop_button.Down = False then begin
|
||||||
start_stop_button.Caption := 'Start';
|
start_stop_button.Caption := START_BUTTON_STRAT;
|
||||||
Timer1.Enabled := False;
|
Timer1.Enabled := False;
|
||||||
CloseHandle ( hProcess );
|
CloseHandle ( hProcess );
|
||||||
room_name_label.Caption := 'Run the game, then press "Start"';
|
room_name_label.Caption := RUN_THE_GAME_NOTICE;
|
||||||
end else begin
|
end else begin
|
||||||
start_stop_button.Caption := 'Stop';
|
start_stop_button.Caption := START_BUTTON_STOP;
|
||||||
ListRunningProcesses ( process_list );
|
ListRunningProcesses ( process_list );
|
||||||
for i := 0 to process_list.Count - 1 do begin
|
for i := 0 to process_list.Count - 1 do begin
|
||||||
if ( process_list [i] = 'MMBN_LC2.exe' ) then begin
|
if ( process_list [i] = 'MMBN_LC2.exe' ) then begin
|
||||||
ProcID := FindProcessID ( process_list [i] );
|
ProcID := FindProcessID ( process_list [i] );
|
||||||
hProcess := OpenProcess ( PROCESS_VM_READ, False, ProcID );
|
hProcess := OpenProcess ( PROCESS_VM_READ, False, ProcID );
|
||||||
Caption := 'MMBN5-6M: Reading from process ID ' + IntToStr ( ProcID );
|
Caption := APP_CAPTION + ' ' + IntToStr ( ProcID );
|
||||||
Timer1.Enabled := True;
|
Timer1.Enabled := True;
|
||||||
break;
|
break;
|
||||||
end else begin
|
end else begin
|
||||||
room_name_label.Caption := 'Error. Run the game.';
|
room_name_label.Caption := ERROR_GAME_NOT_RUNNING;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
@ -307,8 +362,8 @@ begin
|
||||||
room_name_label.Caption := room_name;
|
room_name_label.Caption := room_name;
|
||||||
end else begin
|
end else begin
|
||||||
room := SMALLINT ( room ); // - 844424930459648;
|
room := SMALLINT ( room ); // - 844424930459648;
|
||||||
room_name := ROOMS.ReadString ( 'Rooms ' + current_game, IntToStr ( room ), 'Unknown' );
|
room_name := ROOMS.ReadString ( 'Rooms ' + current_game, IntToStr ( room ), UNKNOWN_ROOM );
|
||||||
room_name_label.Caption := 'Room #' + IntToStr ( room ) + ': ' + room_name;
|
room_name_label.Caption := ROOM_NUMBER + IntToStr ( room ) + ': ' + room_name;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
spoils_list := ROOMS.ReadString ( 'Spoils ' + current_game, IntToStr ( room ), '' );
|
spoils_list := ROOMS.ReadString ( 'Spoils ' + current_game, IntToStr ( room ), '' );
|
||||||
|
|
@ -325,11 +380,11 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end else begin
|
end else begin
|
||||||
room_name_label.Caption := 'Error. Make sure the game is running.';
|
room_name_label.Caption := ERROR_GAME_MEMORY_NOT_READ;
|
||||||
end;
|
end;
|
||||||
except
|
except
|
||||||
on edit_room_button :Exception do
|
on edit_room_button :Exception do
|
||||||
room_name_label.Caption := 'Error. Can''t read game''s memory.';
|
room_name_label.Caption := ERROR_UNABLE_TO_READ_GAME_MEMORY;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
@ -338,11 +393,12 @@ end;
|
||||||
|
|
||||||
procedure TForm1.edit_room_buttonClick ( Sender :TObject );
|
procedure TForm1.edit_room_buttonClick ( Sender :TObject );
|
||||||
var
|
var
|
||||||
new_room_name :STRING;
|
new_room_name :STRING = '';
|
||||||
begin
|
begin
|
||||||
new_room_name := room_name;
|
new_room_name := room_name;
|
||||||
if InputQuery ( 'Editing Room # ' + IntToStr ( room ), 'Enter this Room''s name', new_room_name ) then begin
|
if InputQuery ( EDITING_ROOM + ' ' + IntToStr ( room ), ENTER_ROOM_NAME, new_room_name ) then begin
|
||||||
ROOMS.WriteString ( 'Rooms ' + current_game, IntToStr ( room ), new_room_name );
|
ROOMS.WriteString ( 'Rooms ' + current_game, IntToStr ( room ), new_room_name );
|
||||||
|
last_room := 18446744073709551615;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
@ -357,6 +413,7 @@ begin
|
||||||
// free additionally created objects
|
// free additionally created objects
|
||||||
ROOMS.Free;
|
ROOMS.Free;
|
||||||
process_list.Free;
|
process_list.Free;
|
||||||
|
languages.Free;
|
||||||
UnregisterHotKey ( Handle, 111000 );
|
UnregisterHotKey ( Handle, 111000 );
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
@ -396,4 +453,10 @@ begin
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
initialization
|
||||||
|
|
||||||
|
|
||||||
|
SetDefaultLang ( 'en', 'po' );
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
|
||||||