• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

m4/H22-Dec-2012-2,3302,135

po/H07-May-2022-9,9187,815

ABOUT-NLSH A D22-Dec-201224.1 KiB436392

AUTHORSH A D22-Dec-2012532 2414

COPYINGH A D07-Oct-201234.3 KiB675553

ChangeLogH A D22-Dec-201220.2 KiB590466

INSTALLH A D07-Oct-201215.4 KiB371288

Makefile.amH A D22-Dec-20122.8 KiB8775

Makefile.inH A D03-May-202244.6 KiB1,2641,149

READMEH A D22-Dec-201215.4 KiB446326

VERSIONH A D22-Dec-20126 21

aclocal.m4H A D22-Dec-2012429.7 KiB11,98810,913

archi.ccH A D22-Dec-20124.4 KiB16593

archi.hH A D22-Dec-20123.7 KiB15037

bonus.ccH A D22-Dec-20127 KiB284176

bonus.hH A D22-Dec-20121.1 KiB355

config.guessH A D07-Oct-201244.2 KiB1,5531,345

config.h.inH A D22-Dec-20124.7 KiB183124

config.rpathH A D22-Dec-201213.8 KiB514425

config.subH A D07-Oct-201235 KiB1,8051,662

configuration.ccH A D22-Dec-20125.9 KiB207159

configuration.hH A D22-Dec-20124.6 KiB15695

configureH A D22-Dec-2012648.5 KiB21,53318,154

configure.acH A D22-Dec-20121.8 KiB6652

decl.ccH A D22-Dec-20128 KiB382268

decl.hH A D22-Dec-20126.2 KiB231122

depcompH A D07-Oct-201220.4 KiB709460

elevators.ccH A D22-Dec-20124.5 KiB16494

elevators.hH A D22-Dec-20121.5 KiB5111

game.ccH A D22-Dec-201215.4 KiB674502

game.hH A D22-Dec-20121.9 KiB6116

highscore.ccH A D03-May-20226.9 KiB318190

highscore.hH A D22-Dec-20122.4 KiB6511

install-shH A D07-Oct-201213.7 KiB528351

keyb.ccH A D22-Dec-20126.8 KiB310246

keyb.hH A D22-Dec-20122.4 KiB8432

level.ccH A D22-Dec-201240.4 KiB1,5691,198

level.hH A D22-Dec-20128.5 KiB286139

leveledit.ccH A D22-Dec-201227.4 KiB945815

leveledit.hH A D22-Dec-2012872 251

ltmain.shH A D07-Oct-2012276.1 KiB9,6377,288

main.ccH A D03-May-20223.2 KiB12583

menu.ccH A D22-Dec-201226.5 KiB1,008794

menu.hH A D22-Dec-20121.2 KiB4614

menusys.ccH A D22-Dec-201215.1 KiB588465

menusys.hH A D22-Dec-20125.1 KiB13455

missingH A D07-Oct-201210.1 KiB332243

mkinstalldirsH A D22-Dec-2012722 4123

points.ccH A D22-Dec-20121.4 KiB6636

points.hH A D22-Dec-20121.2 KiB4410

qnxicon.cH A D22-Dec-201223.5 KiB379373

robots.ccH A D22-Dec-201215.8 KiB617427

robots.hH A D22-Dec-20121.9 KiB6726

screen.ccH A D22-Dec-201247 KiB1,7841,281

screen.hH A D22-Dec-20124.8 KiB14546

snowball.ccH A D22-Dec-20121.9 KiB8952

snowball.hH A D22-Dec-20121.2 KiB429

sound.ccH A D22-Dec-20122.6 KiB7241

sound.hH A D22-Dec-20121.3 KiB5931

soundsys.ccH A D22-Dec-20125.3 KiB259187

soundsys.hH A D22-Dec-20122.4 KiB8845

sprites.ccH A D22-Dec-20121.6 KiB6934

sprites.hH A D22-Dec-20121.6 KiB5220

stars.ccH A D22-Dec-20122.9 KiB11379

stars.hH A D22-Dec-2012987 358

toppler.6H A D22-Dec-20122.7 KiB8988

toppler.ccH A D22-Dec-201218 KiB805613

toppler.desktop.inH A D22-Dec-2012402 1312

toppler.hH A D22-Dec-20122.6 KiB9222

toppler.hscH A D22-Dec-20120 10

toppler.nsi.inH A D22-Dec-20123.5 KiB123102

toppler.qpgH A D22-Dec-20127.7 KiB154136

toppler.qpg.inH A D22-Dec-20127.7 KiB154136

toppler.specH A D22-Dec-20121.1 KiB6940

toppler.spec.inH A D22-Dec-20121.1 KiB6944

txtsys.ccH A D22-Dec-20125 KiB205158

txtsys.hH A D22-Dec-20121.6 KiB5025

README

1TOWER TOPPLER
2-------------
3
4Installation
5------------
6
7Most of the installation is the normal
8
9./configure
10make
11make install
12
13procedure except for the global highscore. If you want this feature
14then you need to call
15
16make global_highscore
17
18afterwards. This changes the binary owner to root:games and sets the
19sticky bit for group. It also creates a directory in /usr/local/var
20named toppler and a file named toppler.hsc inside this directory. The
21binary will have write access to this directory and the file. But the
22normal user shouldn't. (to prevent them from cheating)
23
24The rpm will install the global highscore file for you.
25
26If the program finds the global highscore file and has the neccessary
27rights to access it, it will always use this list. Otherwise the local
28file will be used. Which table is used, you can find out by looking at
29the output the program writes on stdout upon startup.
30
31Goal
32----
33
34The goal of the game is to reach the target door of each of the 8
35towers in currently 2 missions with this little green animal. This door
36is usually at the very top of the tower.
37
38But finding the way by using elevators and walking trough a maze of
39doors and platforms is not the only problem you have to solve. There
40are a bunch of other creatures living on the tower that will hinder you
41to reach your target by pushing you over the edge of the platforms.
42
43The only weapon of defence you have is to throw a little snowball. But
44most of the other creatures just don't care about this. So you must
45avoid them.
46
47A little submarine brings you from one tower to the next. On this way
48you have the chance to get some bonus points by catching fish. All you
49have to do is to catch a fish in a bubble with your torpedo and then
50collect the fish.
51
52
53Commandline Parameters
54----------------------
55
56-f starts the game in fullscreen mode. But be careful! If the game
57crashes it doesn't restore the original resolution, it stays in 640x480
58pixel mode.
59
60-s makes the game silent. If you don't have a soundcard or for another
61reason get an "can't open audio" error try this option.
62
63Options Menu
64------------
65
66Game Options:
67
68- Password: this menu entry allows you to define a password. The
69password us used to restart a mission from a tower that is not the
70first. You get a password for every third tower while you are playing
71
72- Lives: for the tough guys you cen decrease the number of lives you
73start the game
74
75- Status on top: if you prefere the game status at the bottom of the
76screen. Here is the place to switch
77
78- Game speed: if you want faster gameplay, then this is the option for
79you. This option doesn't influence the behaviour. Only the delays
80between the frames is decreased. Providing you mashine does allow the
81game will run faster.
82
83Redefine Keys:
84
85The options here allow you to redefine the keys that are important for
86playing. Select the key you want to redefine. Press Enter and then the
87new key you want to use. Bare in mind, that you are not overwriting the
88old keys but just define an alternitive that has a lower priority than
89the original keys. So you can not use "p", because this is already used
90for pause.
91
92Graphics:
93
94The submenus here allow you to finely tune the looks of tower toppler.
95Depending on your computers capabilities and you graphic card you can
96change here between very low requirements and modest ones. I have an
97celeron 366 and can play Tower Toppler with everything switched on
98except for the expensive waves.
99
100- Fullscreen: Toggle between windowed and fullscreen display.
101
102- Alpha options toggle the usage of alpha for the different objects
103that are drawn on screen. Alpha blitting requires a bit more time, so
104if the game runs too slow, switch some of them off.
105
106  - Fonts: for all the text displayed
107
108  - Sprites: for all robots and the toppler
109
110  - Scroller: for the underwater scroller in the bonus level
111
112  - Shadowing: toggles if the menu uses a translucent bar and the
113screen gets darker if you start the menu in the game and on some other
114occasions. Shadowing takes up quite a lot of time.
115
116- waves: here you can toggle between nonreflecting, simple and
117expensive waves. Nonreflecting waves take up the lest amount of CPU
118time but don't look very good. Expensive waves look quite good but
119require quite a bit of CPU time.
120
121- scroller: here you can toggle between a 2 layer scroller and the
122complete (currently 3 layer) scroller. The 2 layer scroller only draws
123the front and the backround layer of the underwater scroller in the
124bonus level.
125
126Bonuses:
127
128This toggle allows you to suppress bonus levels.  Some people don't enjoy
129hunting fish as much as climbing towers, this allows them to only play the
130fun part ;-).
131
132Speed Indicator
133---------------
134
135In the normal tower climbing game there is an indicator displaying if
136your computer is fast enough for the current playing mode. If you can
137see a small red square in the top left corner of the game then the game
138can not run as fast as it needs to. Consider the following options:
139
140- drop game speed in the game options menu
141
142- don't use the expensive waves, they ARE expensive in CPU time
143
144- switch off some of the alpha options
145
146Controls
147--------
148
149In the menu you can select the mission you want to play next with the
150left and right cursor keys.  Press space or return on the start menu
151item to start the game.
152
153The animal is controlled by the cursor keys and space (or return). Left
154and Right make the animal walk. Up and down make the elevators move if
155you are on one. (The elevator platforms are a little bit smaller than
156the normal platforms.)  If you are in front of a door press up to enter
157it.  Pressing the space key will either throw a snowball if you are
158standing still or make the animal jump if you are walking.
159
160For the Leveldesigner
161---------------------
162
163The game finally has a leveleditor. Because I've been too lazy to make
164new graphics for special objects all tower objects are drawn using the
165existing graphics.
166
167Because the only thing you can rely on on a keyboard are the numbers
168and the letter keys I have used only these. The layout is choosen so
169that keys with a similar task are next to each other and not that the
170letters mean something.
171
172Otherwise the editor is relatively simple:
173
174help:
175
176h    shows a list of all keys with explanations
177
178You can move in the list with up, down and pgup, pgdown
179
180cursor movement:
181
182cursor keys
183page up and down: 5 rows up and down
184y               half turn of the tower (for doors)
185HOME            go to starting position
186
187actions:
188
189p    play, to test the level you are just editing
190ESC  leave the editor
191l    load tower
192o    save tower
193z    check consistency of tower
194
195The consistency check checks if all doors are exactly 3 layers high, if
196there isn't a undefined symbol in there and if there is always the
197opposite platform for the elevators (without unremovable obstacles
198in between). If there is something wrong with the tower, the cursor
199moves to the position of the problem.
200
201editing:
202
203ins  inserts a row below the current position
204del  deletes the current row
205
206with these actions you must be careful because they can destroy doors.
207
208objects:
209
210space   clear field
211
212q       normal pillar
213a       flashing box
214
215w       normal step
216s       vanishing step        shown as flashing step
217x       sliding step          shown as sideways moving step
218
219e       elevator top station
220d       elevator middle station
221c       elevator top station
222
223the elevator stations are shown by a moving platform. The platform is
224moving into the direction the elevator can move. So for the bottom
225stations the platform is repeatingly moving up and jumping down.
226
2271-7     the different kinds of robots
228
229for the eye robot the movement is shown by the movement of the robot in
230the editor. The slow moving version moves half as far as the fast
231moving one.
232
233The two jumping balls can be identified by ball movement: one is
234standing still. This is the one that jumps on its place until the
235toppler gets near. The ball that has a sideway movement from it's
236beginning on is moving in the editor too.
237
238i       normal door
239k       target door           shown as flashing door
240
241This action always places a whole door (in 3 layers) and tries to place
242a door on the opposite side, if it's empty. Doors should never be
243higher then 3 layers. The clear command (' ') will always remove the
244whole door but not the one on the opposite side of the tower.
245
246The target door command doesn't place a door on the opposite side
247
248parameter of the tower:
249
250the parameter are always in a range of values. To allow fast
251alterations of the values the difference between the old and the
252changed value increases every time you go into the same direction. So
253if you increase the time for the tower by pressing 'b' the first time
254the value increses by one the second time by two the third time by
255three and so on. This size is reset to one as soon as you change the
256direction of your changes. This sounds complicated but the best thing is to
257try it
258
259b       increase time
260n       decrease time
261
262v       open palette dialog
263
264In the palette dialog up and down change the color you want to change.
265Left and Right change the value by one, PgUp and PgDown change by 10
266and the numbers make the value jump to 10 equally distributed positions on the
267scale
268
269Tower File Format
270-----------------
271
272Just in case you are interested in the format of the tower file:
273
274The format is similar to the windows configuration format. Each section
275starts with its name in squarebrackets "[]". Unknown sections are
276ignored. Most sections are selfexplainatory, except for the data
277section.
278
279This section has the towerheight in its first line followed by a table
280where each character represents one position on the tower. The
281following table explains the characters used for the tower bitmap and
282their meaning.
283
284   empty
285v  top elevator station
286+  middle elevator station
287^  bottom elevator station
2881  freeze ball
2892  jumping ball moving from the start
2903  jumping ball standing and then moving to you
2914  robot, up down
2925  robot, up down fast
2936  robot left right
2947  robot left right fast
295!  pillar
296-  platform
297b  flashing box
298.  vanishng platform
299>  slippery platform
300<  slippery platform
301#  normal door
302T  target door
303
304The demo section is also not really obvious. The numbers represent
305states of the important keys. Each bit in the number corresponds to one
306key. If it is set the key is pressed, otherwise not. Because Tower
307Toppler is strictly deterministic and uses fixed intervalls for display
308and update each line corresponds to one cycle of update and display.
309
310I can not promise that the program will be able to load the files if
311you are changing them manually, so better leave your fingers away from
312these.
313
314Because of the ongoing development of Tower Toppler this format is
315likely to change. New sections may be added, other ones deprecated. I
316hope that the section format will help to achive backwards
317compatibility but I promise, of course, nothing. If you have problems
318loading your old tower files, send them to me and I'll do my best to
319convert them.
320
321Also, if you want to send me your missions, please do not send the
322mission files, but the towers. Because the mission files are binary and
323are changing as well it may be quite complicated to convert a mission
324file generated with an old version of tower toppler to a new version.
325But it will nearly always be possible to edit the tower files.
326
327Mission File Format
328-------------------
329
330And another paragraph for the interested ones. Here the format of the
331mission files is explained.
332
333First in the mission files is the mission name. The first byte is the
334lenght of the string followed by the text itself. Then comes a
335priority. This value is used to sort the missions in the game menu.
336Then comes the number of towers in the mission followed by the offset
337of the tower offset table (b bytes). This table contains 4 bytes for
338every tower showing the starting position of the tower inside the file.
339The offset table is normally at the end of the file.
340
341Now to the towers. They are structured into sections just as the tower
342file is. The section header contains 5 bytes. One shows the section
343type. The other 4 the lenght in bytes of the section data. Then the
344data follows. This allows the program to skip unknown sections.
345
346The section numbers can be found in level.cc.
347
348Most of the sections are fairly simple. Except for the tower and demo.
349
350The tower data is split into 2 parts. First a bitmap detailing which
351places do contain something. For each occupied place there is a byte in
352the following data. The byte details what occupies the field. Details
353in the source.
354
355The demo uses a run length encoding. One byte for the run length and
356one word for the key state.
357
358So this should help to find your way into the code, if it's neccessary.
359
360
361Mission Creation
362----------------
363
364With the key m in the level editor you start creating a new mission. Be
365aware that mission contain your towers in a compressed format and I
366will not provide a method to extract the original tower from this to
367prevent player from cheating. So keep your original tower files in case
368there are bugs in your towers and you need to change things.
369
370What follows now are a pile of questions you have to answer by keyboard
371input.
372
373First the name of the mission. The mission creator will write a file to
374your disk with the same name as the name of the mission, but you are
375welcome to rename the file because the mission name is saved inside the
376file too. The only thing you have to take care of is that the file has
377".ttm" (tower toppler mission) as extension.
378
379Now input all the filenames of the towers you want to add to this
380mission. The limit to the number of towers is 255 but I'd suggest to
381not use this many because it would take a lot of time to play through
382the complete mission.
383
384If all towers have been input enter an empty name to finish this list.
385Now the file will be written and you should be able to select your new
386mission in the main menu.
387
388IMPORTANT: please check your towers, before you create a mission, for
389inconsistencies, because this is not done in the created mission file.
390
391Helpful Hints
392-------------
393
394Finally some details about the inner workings of the game that might
395help design levels.
396
397- There are never more than 4 robots on screen (including the
398  horizontal spinning object)
399- robots that go below the screen vanish
400- robots that fall into water vanish
401- the spinning object has a timeout, if this time passed it will come
402  as soon as there are less then 4 robots on screen
403- other the robots appear as soon as they are inside the screen and
404  there are less then 4 robots on screen
405- the behaviour of the robots is completely deterministic
406- the cross throws you 4 layers down, the other robots much more
407- the starting place on the base is always the same, it's on top of the
408  2nd row on angle 0 (where the cursor is at the start HOME moves the
409  cursor to this position)
410
411FILETYPES
412---------
413
414datafiles (graphics, sounds), readonly
415
416  first in local directory,
417  then global (per compiler switch /usr/local/share/toppler)
418
419local configuration file, read/write/create
420
421  in home directory
422
423level editor, new missions, towers read/write/create
424
425  in home dir (/home/user/.toppler/...)
426
427highscore file, read/write/create
428
429  in global dir, home,
430
431Signing
432-------
433
434If it is necessary to sign the binary to get it to run on a device
435(like handhelds or smartphones) and this signing requires a fee, you
436are allowed to charge a small amount of money to get this signing fee
437back. Also, you are not required to publish the code that is necessary
438to communicate with the underlying device operating system. All other
439changes to the game must be published under the GPL.
440
441Contact
442-------
443
444Webpage: toppler.sf.net
445Email  : roever@users.sf.net
446