Berahthrabans patch of MoMIME

Anything else to do with MoM IME
Post Reply
Berahthraban
Posts: 4
Joined: Fri Jul 24, 2020 7:58 pm

Berahthrabans patch of MoMIME

Post by Berahthraban » Fri Jul 24, 2020 8:23 pm

Hi guys,

After being a long-time silent observer, 5 years at the very least, I finally decided to go out of hiding and do some tinkering on the source. But first things first: Words can not tell how grateful I am, for Implode starting this project so long ago, making it free software, and sticking with it to this point! This is a kind of perseverance rarely seen among hobby project devs. After taking a look at the code, I have to add: It's nicely done! The project has become quite big. But it's so well structured, it took me about an hour from checking out the code to implement a first minor change in server-side city processing. ;-)

What I did so far:
- A "feature" which already got on my nerves over 20 years ago, when I played MoM for the very first time: No production carry-over from one project to the next! I hated it back then and I hate it now. But since Implodes code is so very well done, it was easy for me to change. So, now production carries over! I implemented the feature on top of 0.9.8.1 in the server.
- Another small feature I implemented are cancelable spells. This is realized via the Apprentice window (F3). Click on the spell you want to cancel and then on the "Cancel spell" button and the spell vanishes from the list, along with all mp you may already have invested in it. So, be careful! - It's implemented in the client.
- Yet another small feature is a toast message when casting a overland spell via the spell book. (The spell gets added to the queue.) In this case the spell book remains open.

If you want to give those changes a try, download the server / client from my dropbox: https://www.dropbox.com/sh/yysvmq6p4kmm ... AQH2a?dl=0

If you just want to play, you only need to grab the momime-server-0.9.8.1.jar (for carried over production) / momime-client-0.9.8.1.jar (for cancelable spells and spell casting toasts) and put it in your installation directory in the "lib" folder. Restart the server / client and the appropriate change gets active.

Maybe Implode wants to incorporate some or all of the changes into his project. I created and uploaded patch files for this. (I'd feel honored if he did.)

I've also got the following further features on my agenda:
- fix (client doesn't start a new turn, freezes in turn processing):
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
at java.base/java.util.Objects.checkIndex(Objects.java:373)
at java.base/java.util.ArrayList.remove(ArrayList.java:503)
at momime.client.messages.process.RemoveQueuedSpellMessageImpl.start(RemoveQueuedSpellMessageImpl.java:41)
at com.ndg.multiplayer.base.client.MultiplayerBaseClientThread.startFirstMessageOnQueue(MultiplayerBaseClientThread.java:138)
at com.ndg.multiplayer.base.client.MultiplayerBaseClientThread$1.run(MultiplayerBaseClientThread.java:88)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316)
- client: city screen: checkbox which prevents further city growth
- client: speed up unit movement
- client: display number of turns for current project
- client: conquered city screen: Yes in red and No in green
- server: analyze possibilities to utilize concurrency in turn processing
- client: all num pad keys should move selected units
- client: wider zooming-range in overland map
- client: ability to increase font size of user interface
- client: ability to fullscreen mode (enhances immersion and scrolling)
- maybe help with some of the tickets logged over at sourceforge

I'm really excited Implode made it so easy to implement features for one of the best 4x games of all times!

Best regards!
Last edited by Berahthraban on Sun Jul 26, 2020 3:25 am, edited 6 times in total.

jtholmi
Posts: 3
Joined: Thu Jul 23, 2020 10:55 am

Re: Berahthrabans patch of MoMIME

Post by jtholmi » Sat Jul 25, 2020 6:42 pm

Hey Berahthraban,

First of all, thank you very much for your efforts! I hope Implode will see this post as soon as possible! I'm very happy to hear there is somebody like you here! 8)

You should register to MomIME's forums at sourceforge.net, where Implode is active as nigelgay (I think). I already mentioned this post there.

Berahthraban
Posts: 4
Joined: Fri Jul 24, 2020 7:58 pm

Re: Berahthrabans patch of MoMIME

Post by Berahthraban » Sun Jul 26, 2020 12:33 am

Hi jtholmi,

thanks for the pointer regarding the sourceforge forum.

I'm not the only one willing to contribute. Friday evening, shortly after my original post went online, I was contacted by someone, who wrote that much and he wanted to know how I got the project to compile.

My motivation for doing those very minor patches is egoistical really. I always wanted to change MoM every time I got back to this great game. Every couple of years. But disassemble a dos executable is just too much effort for me. This implementation of Implodes / nigelgays is a more modern one, using Java, Swing and the Spring framework. Therefore it's also scalable. Dos and Dosbox at the other hand have got limitations which can't be easily overcome.

If Implode / nigelgay would not appreciate contributions from other devs I'd totally understand. The amount of work he put into this is enormous. I think I'd need about 2,000 hours to reimplement it. This order of magnitude. It's his project and from my point of view it's entirely his decision what happens with it.

I'm just grateful he made it free (gpl'd).

Cheers!

User avatar
Blake00
Posts: 24
Joined: Sun Nov 01, 2015 3:59 am
Location: Australia
Contact:

Re: Berahthrabans patch of MoMIME

Post by Blake00 » Sun Jul 26, 2020 7:11 am

This looks really cool!! Thank you for your contributions and hard work. That's awesome to know you and others wish to help in some way. Some of your addons are more 'personal choice' features that might detract from Implodes intention of keep the game as true as possible to the original so they may end up best staying as 3rd party mod only. Be rest assured even if he doesn't use your work he'll certainly be inspired by it! :)

I've posted a reply to you guys over in that sourceforge thread but I'll let Implode know about this thread.

I don't think he checks here or the sourceforge forum all that often so it's probably better to come join the MoM Discord and drop by the MoM fan games sub chat as Implode visits there every now and then to keep an eye out for fan feedback etc. :)
Last edited by Blake00 on Sun Jul 26, 2020 11:29 am, edited 1 time in total.
Image
Blake's Sanctum - Master of Magic Legacy:
fan page containing pictures, vids, info, similar games & fan projects!

Berahthraban
Posts: 4
Joined: Fri Jul 24, 2020 7:58 pm

Re: Berahthrabans patch of MoMIME

Post by Berahthraban » Sun Jul 26, 2020 11:06 am

Hi Blake,

the work wasn't hard at all. It was quite enjoyable. But thank you for your thank you. ;-)

Maybe I'm gonna check the MoM discord channel out some day. I've got to admit I'm focused on my own agenda regarding this project though. ;-)

Cheers!

Post Reply