Changelog for GHBM

Some players use old computers. They want Game Hunter to be light on resources and so do I. Here is a timeline of the GHBM EXE size (GH1.491bm.exe
).
- 2009-03-23:
- 496kB for official GH 1.491.
- 2009-04-06:
- 508kB after first set of changes.
- 2009-04-08:
- 496kB after removing all
ImageComboBox
controls and related code.- 488kB after lots more changes.
- 2009-04-13:
- 484kB after removing Autosize! button and turning off drag & drop.
- 2009-04-14:
- 488kB after some more tweaks.
- 484kB after adding Help > Commands menu item and cleaning up some other code.
- 2009-04-17:
- 464kB after lots of dead code and notification features are removed.
- 2009-05-01:
- 464kB several minor GUI changes and adding 3 menu items.
- 2009-05-10:
- 548kB after embedding flag graphics into the EXE but it removed 88kB of files from the flags folder. (4kB overall saving.)
- 2009-05-15:
- 552kB after adding some test code for trying out different colours.
- 2009-06-05:
- 552kB after a few minor tweaks.
- 2009-07-03:
- 548kB after trivial-seeming code reductions.
- 2009-07-13:
- 540kB after replacing
.ListSubItems
with.ListItems
. - 2009-07-18:
- 544kB after making Status column sort dynamically.
- 2009-12-29:
- 548kB after chat formatting and history refined. Many comments.
Changes for 6th April 2009
Appearence & Theme
- Revised user interface.
- Switched to 3D border style since XP’s nice borders don’t work in Common Controls 6. (They do in 5.)
- MS Sans Serif replaced with Microsoft Sans Serif.
- Chat boxes now use the standard font, Tahoma at size 8.
- Icon is set at design time for all forms.
Lists
- Only the useful columns are shown.
- Created an
AutoSizeColumns()
subprocedure, with an Autosize! button. - Names column renamed Players.
- Host column renamed Games.
- Vertically autosized the Games list.
- Fixed regression with flag icons in Games list.
- Games list uses CC column like Players list.
- Comment column hidden:
- People rarely put useful stuff in it.
- Even when useful it is rarely obeyed.
- Took quite a lot of width, even when empty (
840.18
twips or56
pixels). - There’s a chat box and a big chat history window immediately below the games list. You can make as many comments as you want and as big as you want them. This is what players do naturally!
LabelEdit
is now (finally!) disabled for all ListViews.- Pass column now says Yes or No instead of Y or N.
- Level column of Games list now uses description instead of
.mmp
filename when you change the level you are hosting from the Network GTA2 window.
Host Game
- Host Game button can be clicked before signing in. (Handy for testing levels and
.mmp
files.) - Is now resizable.
- Width can be set much narrower than before.
- Is now modeless. (You can leave it open and still use main window.)
- Esc now closes it and added Cancel button.
- Buttons in conventional position and order, at bottom.
- Double-click list to host that level immediately.
- Removed tooltip from Play Alone button.
- PlayerCount column is now right-aligned.
Settings
- Made controls resizable.
- ImageComboBox hidden in favour of a new ListView.
System Tray
- Change from
Hex()
to named mouse button constants:- Copy-pasted from 1.492.
- Right-click restores GH same as left-click does.
Optimisation
- Removed the DataGrid and DataList components, since they weren’t used.
- Replaced
""
withvbNullString
orvbQuote
, as appropriate. - Removed line numbers with MZ Tools as described by Sektor’s e-mail from 24th March 2009.
- Rewritten resizing code.
- Removed
frmSettings.txtGTA2folder = strGTA2path
from the main window’s source code, as instructed by Sektor.
Changes for 8th April 2009
Appearance & Theme
- Title bar:
- Removed your IRC name. (You see it every time you send a message.)
- Removed version number. (It’s in Help > About.)
- Added BenMillard Edition to make clear this is not the official Game Hunter.
- Each window now defaults to normal state if WindowState registry value is empty.
Lists
- Games list default height is set 1 row taller than before.
Chat
- Reviewed every message GH displays:
- Removed many useless messages.
- Made colours more consistent and logical.
- Shortened some useful messages.
QUIT
andPART
now have proper text.- Merged the code for
QUIT
andPART
. - Gave proper text to some messages you get when a command goes wrong.
- Chat box regains focus automatically after you use the Autosize! button.
Host Game
- Comment box is now hidden for same reasons as the Games list.
- Checkboxes now enable and disable the corresponding controls.
- Ctrl+A does Select All in controls where it makes sense.
Settings
- Window size and position are stored:
- New registry entries are consistent with other windows in GH.
- Ctrl+A does Select All in controls where it makes sense.
- Removed some old controls:
- Dropdown list for location replaced by a table.
- Notications when people join from locations 1 and 2 are gone.
Changes for 9th April 2009
Chat
- Further tweaks to some messages:
- Removed many useless messages.
- Fixed a couple of mistakes I made with the colours.
- My first attempt at polite autoscroll for the chat history:
- If you click or highlight an old message, new messages are still be added but you stay with the message you clicked.
- If you scroll up without clicking some old text, autoscroll still happens.
- Identified as
GTA2GHBM
instead ofGTA2GH1491
so Sektor can see who’s testing it. - Links now have the hand cursor. Thanks Sektor!
Credits
- Help > About now displays all major contributors.
- Sektor made this change but I might neaten it up a bit more.
Changes for 14th April 2009
Lists
- Autosize! button removed.
- Sizing is now done automatically.
- Took the approach suggested by Sektor on 11th April 2009.
- First-letter capitals now used for Away and Hosting.
Chat
- Message colours:
- Purple is only used for
/me
. - Normal connect, reconnect and disconnet are now green.
- Kicks are green. Except for the player who got kicked; they get red.
- Purple is only used for
- Turned off drag & drop editing.
- Scrollbar is now always visible.
Create Game
- Renamed Host Game to Create Game for consistency with GTA2, as suggested by Lantyz.
- Comment controls removed.
- Focus is immediately returned to the chat box after pressing Create Game.
IRC
- Sektor reported flags disappear in GHBM.
- Dafe reported this also happens in official GH, rarely.
- Sektor confirms a netsplit causes this in official GH. has some ideas for fixes.
Code Reduction
- Replaced every
Foo.Item(Index)
with theFoo(Index)
shorthand.
Changes for 17th April 2009
Create Game
- Nudged each text box a little bit closer to its label.
- Cancel button is now same width as Create Game and Play Alone.
Lists
- Shortened Hosting to Host in Status column of Players list.
- When empty, Games list now says No games have been created. (Suggested by Lantyz.)
Chat
- Consistently uses red for the message GTA2 is already open […].
Settings
- Removed some old controls:
- Notification by 1st and 2nd location.
- Notification by ping. (Ping code hasn’t worked for ages.)
- Reconnection checkbox. (Always reconnect.)
Sektor’s Advice
- E-mail from Sektor on 14th April 2009.
- Readme no longer mentions Autosize! button, since that works automatically now.
- Help > Contents now opens
readme.txt
instead ofGTA2GH.txt
. - Removed the invisible Send button.
- Project internally renamed from
GTA2 Game Hunter
toGHBM
.
About
- Cleaned up and compacted the Help > About window.
- Window title changed to About instead of mirroring the main window.
- Added CubanPete: Icon.
- Credits text moved from runtime to design time.
- Version and edition are hardcoded into the credits text.
- Now uses title case and colons.
- Is centred on main window.
- Is modeless but stays on top, like similar windows in other programs.
- All names are visible without scrolling.
Code Reduction
- Removed some large sections of commented-out code.
- Merged
cmdExit_Click
intoForm_QueryUnload
. - Re-arranged some code to put related stuff closer together.
- Size of main window now set using .Move to reduce
Form_Resize
calls at startup. - Used MZtools to remove lots of dead variables and code, such as
tmrWordBreakProc_Timer()
. - Moved some initial chat box properties to design time.
- Removed lots of old commented-out code from
frmGH
. - Removed code for notifications by location and by ping.
Changes for 1st May 2009
Lists
- Turned on gridlines to test if they help at all.
- Games list sizing:
- No longer makes space for a horizontal scrollbar now that it’s so narrow.
- Now fits precisely to the number of games.
- Minimum height leaves space for 2 games.
- Replaced
-
withvbNullString
everywhere except Hamachi password stuff. (Did this break anything?) - Added full country name in tooltip for CC column in Games list.
Chat
QUIT
now includes the host name of the player reliably.
Tools Menu
Now has these common sizes:
- 600×480
- 800×600
- 1024×768
- 1280×960
- Helps when taking screenshots.
- Helps to see how things look maximised on common screen sizes.
- Vike agreed this could be useful on 18th April 2009.
Code Reduction
- Replaced remaining
ListItems.Item(i)
syntax withListItems(i)
shorthand. - Removed the
frmUpdate
window. This was unused, so it won’t affect EXE size.
Changes for 4th May 2009
IRC
- Would not run when Connect at startup was enabled:
- Might be the problem reported by B-Shep?
- Sektor debugged the cause as being my use of
ActiveControl.Name
in the polite autoscroll code. - The form now displays itself before trying to connect at startup, so
ActiveControl
exists. - Also used Sektor’s suggested code which checks window is visible before using
ActiveControl
.
- Updated the internal servers list:
- E-mail from Sektor on 3rd May 2009.
- Also add
83.133.124.161
in case of DNS problems. - Kept the
servers.ini
support for now. - Included an updated
servers.ini
.
Lists
- Incorrect flag sizes reported by Lars Gaastra:
- Confirmed in official GH.
- Setting sizes on the ImageList works.
- Sektor noted it's because
00.gif
(the question mark for unknown Country) is 18×12 when other flags are 16×11. - I resized
00.gif
and it’s included in this release.
Chat
- Now prevents pasting of rich formats into chat box:
- Colours from messages in chat history.
- Formatting from web pages, e-mail, word processors.
- Screenshots, files and other objects.
Create Game
- Custom
.mmp
data such asAuthor
is no longer displayed.
Fixed Bugs
- Solved a process handle leak using the fix Sektor sent on 4th May 2009.
- Now catches the error when the selected server number is 1 greater than the final server in the list.
Changes for 15th May 2009
Chat
- Made the dark red for private messages a more visible orange colour.
Flags
- Embeded flags into EXE instead of loading them each time GHBM starts:
- Added them to the ImageCombo at design time.
- Missed quite a few out after my first try.
- All flags are now present and correct.
- Didn’t do benchmarking but it seemed faster at startup.
- Added flag for Timor-Leste (TL).
Lists
- CC column in Games list now shows Country name in tooltip when you are the host.
Create Game
- Selected game is now last selected game:
- If you close the window, the selected level is now saved.
- Official GH 1.491 doesn’t do this.
Leaks & Bugs Fixed
- Sektor e-mailed me some upgrades on 12th May 2009, including:
- Fixed handle leak in
cRegistry.cls
. - Added error trapping to
frmProbeGTA2
. - Added proper handle fix to
IsCheckProcess()
.
- Fixed handle leak in
Changes for 5th June 2009
Done very little to GHBM during the past couple of weeks.
Keyboard Shortcuts
- Realise Alt+E was conflicted between Edit menu and Settings button.
- Now uses Alt+N for Settings.
Lists
- Games list now says Games (n) just like Players list says Players (n), where n is the number of games or players.
- The sort arrow is redrawn whenever the text changes.
- This is handled in
AutoSizeColumns()
so the code is centralised.
Chat
- Polite automatic scrolling:
- Can now Tab into the chat history instead of clicking.
- Should no longer flicker when new messages are added.
- Dafe checked MSN Messenger’s polite autoscroll. It only scrolls back down after you scroll down to the bottom manually.
- Basing autoscroll on the scrollbar will be the next improvement.
- Sektor’s GTA2GHBOT is now a visible user.
Create Game
- Sektor suggested
lvMaps.SelectedItem.EnsureVisible
should go infrmHost.Form_Resize
on 18th May 2009.
Changes for 10th June 2009
Settings
- Window size and position are now saved properly when you exit GHBM:
- Start, note position, change position, exit, restart: GHBM is in the new position.
- I broke this some time ago by ending the program too abruptly if you use File > Exit.
- It is definitely fixed now.
Lists
- Vertical scrollbar in Players list no longer causes a horizontal scrollbar.
Enhanced GTA2 Network Screen (mpaddon.exe
)
- If you enabled this option in official GH, GHBM would sometimes fail to join games:
- If a game had no comment, GHBM sent an empty comment.
mpaddon.exe
does not allow empty comments.- GHBM now sends a single
-
like the official GH does. - Sektor and I have confirmed this fixes the problem.
- The solution was found by Sektor.
Changes for 3rd July 2009
Appearence & Themes
- Main window titlebar now says GHBM instead of GTA2 Game Hunter (BenMillard Edition):
- Easier to tell apart from official GH, especially when running both.
- Taskbar only shows the GTA2 Game Hunter portion.
- GHBM is much, much shorter and still identifies the program uniquely.
- Only trusted players are testing GHBM and that’s what they know it as.
Lists
- Players list is now sorted after a
/nick
name is changed. - GTA2 Version column renamed GTA2. (GHBM hides this column.)
Chat
- The message Player was denied access. is now shown, so the host can see if joiners need help with the password.
- Output of
/wi
command tidied up by copying code from GH 1.5 by Sektor. - Swapped
lvGH_ItemClick()
forlvGH_Click
:- Clicking a player you are already typing a message to no longer erases your message.
- Joining a game should no longer cause you to join it twice.
- Topic is now left-aligned instead of central.
Code Reduction
- Flattened the code which processes incoming messages.
- Replaced all uses of
= True Then
withThen
.
Changes for 13th July 2009
Chat
- Sektor made times and durations only display the non-zero parts.
- Sektor disabled Virtual Hosts.
Create Game
- Column header now says Levels (n) instead of Description.
Lists
- Clicking on an empty Games list no longer displays an error message.
Code Reduction
- Replaced
.ListSubItems
with.ListItems
whenever reading and writing simple strings.
Changes for 18th July 2009
Lists
- Games list now shows version in GTA2 column again:
- v11 is being tested and I keep forgetting to switch back.
- Sometimes I join 9.6 games and later host 9.6 instead of 9.6F.
- Games list can have horizontal scrollbar and this no longer causes vertical scrollbar:
- Some maps have a very long Description.
- GHBM might be very narrow, like an IM window.
- Turning off the horizontal scrollbar would stop user from seeing all details.
- Sorting the Players list by Status will now update dynamically.
Chat
- Shortened and re-organised the Help > Commands text.
Create Game
- Restored the list for selecting GTA2 version.
Settings
- If the selected Location is hidden while resizing the window, the list will scroll to show it.
Changes for 29th December 2009
Chat
- Can drag and drop text into and out of the chat box again!
- You can drop files like in 1.491 but they are instantly cleared.
- Formatting in the chat box is now removed in a more brutal but robust way.
- The new code uses
txtChatBox_Change()
to store, clear and restore the.Text
.
Appearence & Themes
- All windows now use Microsoft Sans Serif instead of MS Sans Serif.
IRC
- Unofficial clients are now processed for country code in
/who
output.
Code Reduction
- Removed a
Debug.Print
which was firing every timeAutoSizeColumns()
was called. - Removed
server.ini
file from package. It’s been optional for ages. - Replaced all
App.Major
andApp.Minor
code with constant calledAPP_VERSION
. (GHBM will always be 1.491 underneath.)