Compare commits

..

No commits in common. "master" and "2.0" have entirely different histories.

26 changed files with 240 additions and 795 deletions

View file

@ -1,8 +1,8 @@
# Megaman Battle Network 5 and 6 Mini Map App
# Megaman Battle Network 5 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.
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.
@ -10,7 +10,7 @@ The images were taken from [Dr. Cossack's Lab](https://www.interordi.com/mega_ma
# How to use
- Open the legacy collection 2
- Load up MMBN 5 (tested with Team Protoman) or MMBN6 (tested with Cyberbeast Falzar)
- Load up MMBN 5 (tested with Team Protoman)
- Open this app
- Use `Start`/`Stop` button to enable/disable memory reading.
- 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.
>
> 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
> 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

View file

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before After
Before After

View file

@ -14,16 +14,11 @@
</XPManifest>
<Icon Value="0"/>
</General>
<i18n>
<EnableI18N Value="True"/>
<OutDir Value="po"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<AutoIncrementBuild Value="True"/>
<MinorVersionNr Value="2"/>
<RevisionNr Value="1"/>
<BuildNr Value="19"/>
<BuildNr Value="18"/>
<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"/>
</VersionInfo>

View file

@ -9,7 +9,7 @@
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="mmbn56mm"/>
<Filename Value="mmbn5mm"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
@ -47,8 +47,8 @@
<Filename Value="mmbn5m.lpr"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="2"/>
<CursorPos X="49" Y="20"/>
<UsageCount Value="65"/>
<CursorPos X="25" Y="5"/>
<UsageCount Value="57"/>
<Loaded Value="True"/>
</Unit>
<Unit>
@ -59,9 +59,9 @@
<ResourceBaseClass Value="Form"/>
<UnitName Value="Unit1"/>
<IsVisibleTab Value="True"/>
<TopLine Value="364"/>
<CursorPos X="52" Y="411"/>
<UsageCount Value="65"/>
<TopLine Value="130"/>
<CursorPos X="85" Y="165"/>
<UsageCount Value="57"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit>
@ -70,21 +70,21 @@
<EditorIndex Value="-1"/>
<TopLine Value="128"/>
<CursorPos Y="152"/>
<UsageCount Value="20"/>
<UsageCount Value="21"/>
</Unit>
<Unit>
<Filename Value="C:\lazarus\fpc\3.2.2\source\rtl\objpas\sysutils\syshelph.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="147"/>
<CursorPos X="16" Y="161"/>
<UsageCount Value="10"/>
<UsageCount Value="11"/>
</Unit>
<Unit>
<Filename Value="rooms.ini"/>
<EditorIndex Value="4"/>
<TopLine Value="274"/>
<CursorPos X="52" Y="298"/>
<UsageCount Value="20"/>
<EditorIndex Value="1"/>
<TopLine Value="40"/>
<CursorPos X="121" Y="53"/>
<UsageCount Value="16"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Ini"/>
</Unit>
@ -92,148 +92,128 @@
<Filename Value="mmbn5m.lpi"/>
<EditorIndex Value="-1"/>
<CursorPos Y="46"/>
<UsageCount Value="8"/>
<UsageCount Value="9"/>
<DefaultSyntaxHighlighter Value="XML"/>
</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>
<JumpHistory HistoryIndex="29">
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="9" Column="34" TopLine="9"/>
<Caret Line="31" Column="11"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="432" Column="49" TopLine="387"/>
</Position>
<Position>
<Filename Value="mmbn5m.lpr"/>
<Caret Line="21" Column="21"/>
<Caret Line="32" Column="11"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="435" Column="35" TopLine="408"/>
</Position>
<Position>
<Filename Value="mmbn5m.lpr"/>
<Caret Line="13" Column="16"/>
<Caret Line="40" Column="21"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="428" Column="73" TopLine="409"/>
<Caret Line="168" Column="27" TopLine="128"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="435" Column="50" TopLine="388"/>
</Position>
<Position>
<Filename Value="C:\lazarus\components\lazutils\translations.pas"/>
<Caret Line="762" Column="128" TopLine="738"/>
<Caret Line="170" Column="13" TopLine="130"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="435" Column="44" TopLine="406"/>
<Caret Line="171" Column="13" TopLine="131"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="437" Column="54" TopLine="406"/>
<Caret Line="176" Column="11" TopLine="136"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="26" Column="92"/>
<Caret Line="282" Column="49" TopLine="282"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="414" Column="53" TopLine="390"/>
<Caret Line="272" Column="72" TopLine="235"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="412" Column="27" TopLine="387"/>
<Caret Line="312" Column="88" TopLine="283"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="211" Column="5" TopLine="165"/>
<Caret Line="121" Column="7" TopLine="102"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="409" Column="19" TopLine="399"/>
<Caret Line="291" Column="84" TopLine="272"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="175" Column="24" TopLine="151"/>
<Caret Line="286" Column="14" TopLine="262"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="9" Column="73"/>
<Caret Line="287" Column="47" TopLine="264"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="188" Column="20" TopLine="173"/>
<Caret Line="289" Column="45" TopLine="265"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="189" Column="25" TopLine="171"/>
<Caret Line="291" Column="69" TopLine="268"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="208" Column="3" TopLine="186"/>
<Caret Line="300" Column="37" TopLine="275"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="453" Column="5" TopLine="408"/>
<Caret Line="268" Column="98" TopLine="235"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="209" Column="46" TopLine="197"/>
<Caret Line="344" Column="52" TopLine="315"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="224" Column="58" TopLine="192"/>
<Caret Line="383" Column="89" TopLine="351"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="210" Column="59" TopLine="210"/>
<Caret Line="281" Column="68" TopLine="259"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="195" Column="6" TopLine="171"/>
<Caret Line="358" Column="89" TopLine="333"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="214" Column="66" TopLine="190"/>
<Caret Line="136" Column="109" TopLine="108"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="415" Column="13" TopLine="375"/>
</Position>
<Position>
<Filename Value="rooms.ini"/>
<Caret Line="51" Column="40" TopLine="25"/>
<Caret Line="398" Column="5" TopLine="351"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="201" Column="82" TopLine="174"/>
<Caret Line="396" Column="5" TopLine="350"/>
</Position>
<Position>
<Filename Value="unit1.pas"/>
<Caret Line="265" Column="25" TopLine="241"/>
</Position>
<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>
</JumpHistory>
<RunParams>

Binary file not shown.

View file

@ -1,111 +0,0 @@
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"

View file

@ -1,107 +0,0 @@
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
View file

@ -208,162 +208,6 @@ MMBN 6=2147425942
1407374883684352=Cyber Academy 2F Hallway
131072=Cyber Academy Class 6-1
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]
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
562949962596352=700z

388
unit1.lfm
View file

@ -1,12 +1,11 @@
object Form1: TForm1
Left = 821
Height = 478
Top = 472
Width = 792
Anchors = [akTop]
Left = 1066
Height = 448
Top = 323
Width = 606
Caption = 'MMBN5-6M'
ClientHeight = 478
ClientWidth = 792
ClientHeight = 448
ClientWidth = 606
Font.CharSet = ANSI_CHARSET
Font.Height = -16
Font.Name = 'Liberation Mono'
@ -15,15 +14,16 @@ object Form1: TForm1
OnClose = FormClose
OnCreate = FormCreate
Position = poScreenCenter
LCLVersion = '3.2.0.0'
LCLVersion = '2.2.6.0'
object room_name_label: TLabel
AnchorSideLeft.Control = Splitter2
AnchorSideLeft.Control = start_stop_button
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Owner
Left = 231
Left = 192
Height = 18
Top = 8
Width = 320
BorderSpacing.Left = 8
BorderSpacing.Top = 8
Caption = 'Run the game, then press "Start"'
Color = clGradientInactiveCaption
@ -31,20 +31,18 @@ object Form1: TForm1
Transparent = False
end
object map_image: TImage
AnchorSideLeft.Control = Splitter2
AnchorSideLeft.Side = asrBottom
AnchorSideLeft.Control = room_name_label
AnchorSideTop.Control = room_name_label
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 232
Height = 436
Left = 192
Height = 406
Top = 34
Width = 552
Width = 406
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 1
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
@ -53,231 +51,153 @@ object Form1: TForm1
Proportional = True
Stretch = True
end
object Splitter1: TSplitter
Left = 787
Height = 478
Top = 0
Width = 5
Align = alRight
ResizeAnchor = akRight
end
object Panel1: TPanel
Left = 0
Height = 478
Top = 0
Width = 227
Align = alLeft
BevelOuter = bvNone
ClientHeight = 478
ClientWidth = 227
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
object Splitter2: TSplitter
Left = 227
Height = 478
Top = 0
Width = 4
OnMoved = Splitter2Moved
ResizeStyle = rsLine
end
object langbox: TComboBox
object start_stop_button: TSpeedButton
AnchorSideLeft.Control = Owner
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 734
Height = 26
Top = 1
Width = 50
Anchors = [akTop, akRight]
BorderSpacing.Top = 1
AnchorSideTop.Control = gamebox
AnchorSideTop.Side = asrBottom
Left = 8
Height = 30
Top = 40
Width = 176
AllowAllUp = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
Caption = 'Start'
GroupIndex = 1
Transparent = False
OnClick = start_stop_buttonClick
end
object edit_room_button: TButton
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = start_stop_button
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = map_image
Left = 8
Height = 30
Top = 78
Width = 176
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
end
object spoils_label: TLabel
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
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
AnchorSideRight.Control = start_stop_button
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = start_stop_button
Left = 8
Height = 24
Top = 8
Width = 176
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Bottom = 8
ItemHeight = 18
ItemIndex = 0
Items.Strings = (
'en'
'ru'
'MMBN 5'
'MMBN 6'
)
OnSelect = gameboxSelect
ReadOnly = True
Style = csDropDownList
TabOrder = 3
Text = 'en'
OnSelect = langboxSelect
Style = csOwnerDrawFixed
TabOrder = 5
Text = 'MMBN 5'
end
object Timer1: TTimer
Enabled = False

View file

@ -1,13 +0,0 @@
{"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"}
]}

117
unit1.pas
View file

@ -6,7 +6,7 @@ interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
Buttons, Grids, IniFiles, Windows, DefaultTranslator, LCLTranslator, FileUtil;
Buttons, Grids, IniFiles, Windows;
type
TWMHotKey = packed record
@ -22,32 +22,25 @@ type
{ TForm1 }
TForm1 = class ( TForm )
langbox :TComboBox;
edit_room_button :TButton;
gamebox :TComboBox;
Label1 :TLabel;
map_stretch_checkbox :TCheckBox;
minus_spoil1 :TButton;
Panel1 :TPanel;
plus_spoil :TButton;
Splitter1 :TSplitter;
map_image :TImage;
room_name_label :TLabel;
Splitter2 :TSplitter;
edit_room_button :TButton;
minus_spoil1 :TButton;
spoils_label :TLabel;
spoils_listbox :TListBox;
map_image :TImage;
room_name_label :TLabel;
start_stop_button :TSpeedButton;
Timer1 :TTimer;
procedure edit_room_buttonClick ( Sender :TObject );
procedure FormClose ( Sender :TObject; var CloseAction :TCloseAction );
procedure FormCreate ( Sender :TObject );
procedure gameboxSelect ( Sender :TObject );
procedure langboxSelect ( Sender :TObject );
procedure map_imagePaint ( Sender :TObject );
procedure map_stretch_checkboxChange ( Sender :TObject );
procedure minus_spoil1Click ( Sender :TObject );
procedure plus_spoilClick ( Sender :TObject );
procedure Splitter2Moved ( Sender :TObject );
procedure spoils_listboxDblClick ( Sender :TObject );
procedure start_stop_buttonClick ( Sender :TObject );
procedure Timer1Timer ( Sender :TObject );
@ -60,25 +53,6 @@ PROTECTED
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
Form1 :TForm1;
@ -102,7 +76,8 @@ begin
while INTEGER ( ContinueLoop ) <> 0 do
begin
if ( ( UpperCase ( ExtractFileName ( FProcessEntry32.szExeFile ) ) = UpperCase ( ExeFileName ) ) OR( UpperCase ( FProcessEntry32.szExeFile ) = UpperCase ( ExeFileName ) ) ) then begin
if ( ( UpperCase ( ExtractFileName ( FProcessEntry32.szExeFile ) ) = UpperCase ( ExeFileName ) )
OR( UpperCase ( FProcessEntry32.szExeFile ) = UpperCase ( ExeFileName ) ) ) then begin
Result := FProcessEntry32.th32ProcessID;
Break;
end;
@ -143,8 +118,8 @@ var
hProcess :THandle;
ROOMS :TIniFile; // contains room labels
process_list :TStrings;
room :QWORD = 18446744073709551615; // contains current room 16-bit value
last_room :QWORD = 18446744073709551615;
room :QWORD = -1; // contains current room 16-bit value
last_room :QWORD = -1;
room_name :STRING;
new_room :bool;
spoils_list :STRING;
@ -163,17 +138,12 @@ is_cyberworld :BOOLEAN = False;
var
x, y, w, h :INTEGER;
state :TWindowState;
languages :TStrings;
current_language :STRING;
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate ( Sender :TObject );
var
i :INTEGER;
begin
current_game_pointer := mmbn5_pointer;
// open ini file and create a list to hold processes
@ -181,18 +151,7 @@ begin
process_list := TStringList.Create ( );
spoils_listbox.Height := 0;
if NOT RegisterHotKey ( Handle, 111000, MOD_WIN, VK_Y ) then
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' );
ShowMessage ( 'HotKey registration failed. You won''t be able to press Win+Y to temporarily view map in full screen.' );
end;
@ -208,14 +167,6 @@ begin
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 );
begin
//map_image.Canvas.Brush.Style := bsClear;
@ -231,7 +182,7 @@ end;
procedure TForm1.minus_spoil1Click ( Sender :TObject );
var
Txt :STRING = '';
Txt :STRING;
i :INTEGER;
begin
if ( spoils_listbox.ItemIndex > -1 ) then begin
@ -254,11 +205,11 @@ end;
procedure TForm1.plus_spoilClick ( Sender :TObject );
var
new_spoil_name :STRING = '';
Txt :STRING = '';
new_spoil_name :STRING;
Txt :STRING;
i :INTEGER;
begin
if InputQuery ( ADDING_ITEM + IntToStr ( room ), ENTER_ITEM_NAME, new_spoil_name ) then begin
if InputQuery ( 'Adding item to Room #' + IntToStr ( room ), 'Enter item''s name', new_spoil_name ) then begin
spoils_listbox.Items.Add ( new_spoil_name );
for i := 0 to spoils_listbox.Items.Count - 1 do begin
if i < spoils_listbox.Items.Count - 1 then
@ -276,22 +227,16 @@ begin
end;
procedure TForm1.Splitter2Moved ( Sender :TObject );
begin
plus_spoil.Width := Round ( Panel1.Width/2 ) -12;
end;
procedure TForm1.spoils_listboxDblClick ( Sender :TObject );
var
new_spoil_name :STRING;
var
Txt :STRING = '';
Txt :STRING;
i :INTEGER;
begin
if ( spoils_listbox.ItemIndex > -1 ) then begin
new_spoil_name := spoils_listbox.Items [spoils_listbox.ItemIndex];
if InputQuery ( EDITING_ITEM + IntToStr ( room ), ENTER_ITEM_NAME, new_spoil_name ) then begin
if InputQuery ( 'Editing item in Room #' + IntToStr ( room ), 'Enter item''s name', new_spoil_name ) then begin
spoils_listbox.Items[spoils_listbox.ItemIndex] := new_spoil_name;
for i := 0 to spoils_listbox.Items.Count - 1 do begin
if i < spoils_listbox.Items.Count - 1 then
@ -317,22 +262,22 @@ var
begin
if start_stop_button.Down = False then begin
start_stop_button.Caption := START_BUTTON_STRAT;
start_stop_button.Caption := 'Start';
Timer1.Enabled := False;
CloseHandle ( hProcess );
room_name_label.Caption := RUN_THE_GAME_NOTICE;
room_name_label.Caption := 'Run the game, then press "Start"';
end else begin
start_stop_button.Caption := START_BUTTON_STOP;
start_stop_button.Caption := 'Stop';
ListRunningProcesses ( process_list );
for i := 0 to process_list.Count - 1 do begin
if ( process_list [i] = 'MMBN_LC2.exe' ) then begin
ProcID := FindProcessID ( process_list [i] );
hProcess := OpenProcess ( PROCESS_VM_READ, False, ProcID );
Caption := APP_CAPTION + ' ' + IntToStr ( ProcID );
Caption := 'MMBN5-6M: Reading from process ID ' + IntToStr ( ProcID );
Timer1.Enabled := True;
break;
end else begin
room_name_label.Caption := ERROR_GAME_NOT_RUNNING;
room_name_label.Caption := 'Error. Run the game.';
end;
end;
end;
@ -362,8 +307,8 @@ begin
room_name_label.Caption := room_name;
end else begin
room := SMALLINT ( room ); // - 844424930459648;
room_name := ROOMS.ReadString ( 'Rooms ' + current_game, IntToStr ( room ), UNKNOWN_ROOM );
room_name_label.Caption := ROOM_NUMBER + IntToStr ( room ) + ': ' + room_name;
room_name := ROOMS.ReadString ( 'Rooms ' + current_game, IntToStr ( room ), 'Unknown' );
room_name_label.Caption := 'Room #' + IntToStr ( room ) + ': ' + room_name;
end;
spoils_list := ROOMS.ReadString ( 'Spoils ' + current_game, IntToStr ( room ), '' );
@ -380,11 +325,11 @@ begin
end;
end;
end else begin
room_name_label.Caption := ERROR_GAME_MEMORY_NOT_READ;
room_name_label.Caption := 'Error. Make sure the game is running.';
end;
except
on edit_room_button :Exception do
room_name_label.Caption := ERROR_UNABLE_TO_READ_GAME_MEMORY;
room_name_label.Caption := 'Error. Can''t read game''s memory.';
end;
end;
@ -393,12 +338,11 @@ end;
procedure TForm1.edit_room_buttonClick ( Sender :TObject );
var
new_room_name :STRING = '';
new_room_name :STRING;
begin
new_room_name := room_name;
if InputQuery ( EDITING_ROOM + ' ' + IntToStr ( room ), ENTER_ROOM_NAME, new_room_name ) then begin
if InputQuery ( 'Editing Room # ' + IntToStr ( room ), 'Enter this Room''s name', new_room_name ) then begin
ROOMS.WriteString ( 'Rooms ' + current_game, IntToStr ( room ), new_room_name );
last_room := 18446744073709551615;
end;
end;
@ -413,7 +357,6 @@ begin
// free additionally created objects
ROOMS.Free;
process_list.Free;
languages.Free;
UnregisterHotKey ( Handle, 111000 );
end;
@ -453,10 +396,4 @@ begin
end;
initialization
SetDefaultLang ( 'en', 'po' );
end.