Re: [stella] Crazy Balloon Update

Subject: Re: [stella] Crazy Balloon Update
From: Manuel Rotschkar <cybergoth@xxxxxxxx>
Date: Tue, 1 Mar 2005 16:50:25 -0500
Hi Kirk!

> Manuel, let us know if this perks your interest.

I must say that I'm totally overwhelmed by your offer. I hadn't really 
expected someone volunteering on creating a level editor... ;-)

Hm... maybe before anything else happens, I'll try explaining the data 
which is describing a single level. It's not put in stone yet though, but 
maybe it already helps you getting a better idea of what could be edited 
with an editor.

Ok, each level in Crazy Balloon is composed out of four objects:

DATA (Well, when I started I just had all info in DATA... ;-))

Each level is identified simply by a number. Even the title screen is a 
standard level. The level number is pointing to a DATA object, which is 
pretty simple:

layoutType          ds 1
enemyType           ds 1
spikesType          ds 1
screenscroll        ds 1

So each level is pointing to a certain layout, enemy and spike object. And 
you can individually activate the scrolling for each level.

LAYOUTDATA looks like this:

PFPtr               ds 8
verPosBalloon       ds 1
horPosBalloon       ds 1
balloonColor        ds 1

So it's holding 4 pointers to as many PF stripes (each 26 lines high), the 
starting position of the balloon and the ballloon color.
(This object will be extended with layoutcolor and "finishing coordinates" 

ENEMYDATA looks like this:

verPosEnemy         ds 1
horPosEnemy         ds 1
enemyHeight         ds 1
enemyPtr            ds 2    ; enemy data end

It's currently holding the position of the enemy, it's height and shape.
As you see it's already prepared to do other things than the face. I'm not 
sure yet how the engine will later distinguish between different enemies. 
Most likely according to certain ranges of the enemyType value.

SPIKESDATA looks like this:

verPosSpike1        ds 1
verPosSpike2        ds 1
horPosSpike1        ds 1
horPosSpike2        ds 1
leftMax1            ds 1
leftMax2            ds 1
rightMax1           ds 1
rightMax2           ds 1
moveAdd             ds 1
moveAdd2            ds 1

I's holding the info for the two spikes alternating. There's a starting 
position, the left and right edges of their movement and moveAdd is 
holding the current "direction", as it is normally either 1, 0 or -1.

On the title screen I have both spikes overlayed, so it's not flickering.
And there's also screens where a PF stripe would differ only by one single 
spike from a previous level, so I just have both spikes overlayed with "0" 
moveAdd there... (See the single spike on the left bottom in level 8 
versus level 6)

Ok, that's it for a start. Well, it's maybe still a bit too early for an 
editor, but I hope it'll give you at least a basic idea of what is 
required here...

Feel free to toy a bit with the current data in the source (maybe some 
experimenting will help for a better understanding) or just ask anything 
else you'd like to know.


Archives (includes files) at
Unsub & more at

Current Thread