I'm planning an AGI game that will feature day and night, and use the Sierra interpreter, so I need to draw two pictures for each outside screen. I was thinking that I'd have to draw a day picture, save it, change all the colours and save that as a different, nighttime picture. Then I considered it would be a lot simpler if I had a utility that would load a picture resource, change each colour to another one of my choice, then allow the new resource to be saved.|
However, outside of AGI logic I have no experience of programming (I don't even know if my idea is possible). Any help and advice on how I could achieve this?
You should using agipal to make your game with day/night feature. You'll find it at Brian's agi sci website.|
I plan to make a day/night feature too to my game Serguei's destiny 2.
|Luke||Thanks for the reply. I realise agipal can make the screen darker, which I suppose is quite a sophisticated way of creating day and night, but I'd rather stick to the "old-fashioned" way, to give the game a certain retro quality. Anyhow, if I could create the kind of utility I described above, it probably wouldn't take that long to do it the way I'd ideally like to. Anybody think my idea's possible?|
Your idea is definitely possible. At the very least you could provide a list of the colors in the current picture (as in, list all the available colors) and then let the user select which color each of those colors gets mapped to in the new picture. Then it would simply be a matter of searching the picture resource for each "Set Visual Color" command, checking the next byte's value (which is the color in the old screen) and using the color mapping you just created to replace that byte's value with the new picture's color value.|
It probably wouldn't be very difficult to create at all.
|Luke||Yeah, that's the sort of thing I was thinking about. Any pointers on how to go about creating it (if that's not sponging off the good folks of the AGI community too much)?|
Well, it depends on what sort of programming knowledge you have. First off, I would say that you should familiarize yourself with the Picture Resource format. The level of understanding you need for the program actually isn't very high. Writing the program to do the work you want will be probably the easiest part of the whole project. All you'd need to do is look for two different byte values -- the one that says "set the visual color" and the one that says "this is the end of the picture resource". I don't remember the first code off the top of my head, but the second one is 0xff (that is, 255).|
Since you're not adding or deleting any picture commands, it would probably suffice to simply store the picture resource in an array.
The hard part about the project if you don't have much programming experience would be developing the user interface. Ideally, the program should have a windows interface instead of a command-line interface...it should also have reasonable defaults and the ability to save settings so that a user doesn't have to manually configure the program every time it is run. If you have access to visual basic, that would probably be the easiest way to go. Personally, I prefer C++ myself, but I've been programming for years.
|Luke||Thanks. :) I'm going to have a go at learning to program my utility, although it'll probably take a lot of time and persistence. I haven't got far with the game as yet, so it'll all take quite a while and I'll just have to get on and work at it. Once again, thanks for your time.|