With the doors all working, as I explained in the previous post, the next logical step was giving the player the ability to move around the whole of the dreadnaughts area. This involves having the lift screen and the lifts on all the decks linking into the respective areas on the huge map that are the separate decks. So firstly I had to work on graphics for the lift screen. When I started this I wanted it to be as close to the original game as possible but, as we have increased resolution to work with, the lift screen didn’t look that great. I even tried placing some fancy background graphics to make it look a bit more appealing but it needed something else.
So I went about creating a set of new graphics that were much friendlier on the eye but also as close to the original as possible.
The image above shows one of the first attempts at the lift screen.
The image on the far left represents the lifts and decks in an “off state” whereas the image to the right shows the lifts and decks in an “on” state.
The left is basically one big sprite drawn to the screen and the image on the right is made up of 16 sprites for each of the different decks, along with 8 sprites that we are going to use for the lifts.
The current lift and the deck the player is on is actually overlaid on the complete deck map image on the left screen giving the player a visual clue as to where they are on the dreadnaught, and where they can move to from the lift shaft they are on. This is presumably the same system that Andrew Braybrook used although he would have been made up of character graphics.
The video at the bottom of this post will make it all a lot clearer if you have never seen the game before.
The next step was to work out which lift to highlight when you ‘enter’ a lift from within the main game. Each lift has it’s own location internal numbering system so the code then runs through a list of possible places on the other decks where the player needs to travel to. Some decks only have one lift, while others can have several, so keeping track of where the player is, and where they need to move to, while also overlaying the correct deck sprite over the map does start to get quite tricky.
And so, to cut a long story short;
Each lift has a list of decks it can visit.
Each deck has a list of lifts that can access it.
Each lift has an x and y coordinate of its position within a deck.
So when we enter a lift, we can work out which shaft we are on as the player moves up or down (assuming there is a deck to travel to in the given direction) and we can also work out what lift position on the deck they will be using to exit that lift. We then place the player on that x and y coordinate on the huge map to give the effect of switching to another deck on the dreadnaught.