Re: Tower Conversion Tool
- Zitat: Artinum
Gosh, what violent imagery. Isn't there a friendly way to say that you've completed the first, essential part of a task and that the rest will be considerably less difficult? |
Gosh, what violent imagery. Isn't there a friendly way to say that you've completed the first, essential part of a task and that the rest will be considerably less difficult? |
... after pushing the task ahead of me (shelving the task?) ... |
*lollollol*
Man, I just love your postings....
Shelving a task means putting it to one side, leaving it alone so you can get on with other things instead. I'm not sure if that's what you mean by pushing it ahead, which is a phrase I've never heard of... |
Ah. That's called "management".
HA!
I just played a couple of levels I created on the Amiga in the Remake!
Conversion works pretty well, though I still have to do an intermediate step. If I load a converted tower library directy in the remake, I get an error message. If I load the file into Mayo's editor, save it again, and then load it in the remake, it works. Mayo, what are the bytes 4 and 5 in the library format for? Some kind of checksum apparently. How do I calculate the correct value??
Another thing still missing is the mapping from the original effects and colours setting to the RToB settings. Mayo, can you give me something like default values for the settings in the remake? And what colour format do you use?
Plus, of course, conversion of groups, highscores and savegames to RToB format isn't possible, as RToB doesn't support them yet.
Anyway, I'm quite pleased with the tool so far, and I'm going to upload the latest version tomorrow.
Oh yes, and it's also possible to use Mayo's Editor to create towers for the Amiga and Atari versions of ToB!
Simply create a tower library with the editor (using the CENTRAL 8x8 field of the LOWER 4 levels (leave empty: 4 columns west and east, 4 rows north and south, and the upper 4 levels of course), save it, convert it to ADF or ST, and load it with the emulated game.
Not really a useful feature still, as all colours will be black...
Much more useful:
Convert your ADF or ST towers to RToB format and open them in Mayo's Editor to quickly and conveniently browse through the towers.
I will implement a feature to the conversion tool that extracts towers from groups, so you can also see towers that you don't possess as single tower files.
I'm still thinking about excluding password protected towers from conversion though...
Sometimes I feel that I live in a bizarre country. |
I'm also very pleased to see, you worked on ADF/ST<->RToB conversion very cool...
@fawlty:
Oh stimmt *batsch* in der _TWR_loadLibrary() sind ja nicht die ersten 6 bytes beschrieben, urgs.
Ich mache das ganze Format hier nochmal jetzt ordentlich auch für vielleicht andere Interessierte
(auch das mit den Farben)...
FAQ RTob tower library file format:
-----------------------------------
Important:
RToB tower library header:
$0000-$0001: signature ($54 $54 = ASCII TT for "TobTowers")
$0002-$0005: size of file in bytes (little endian order, like all integers here)
$0006-$0009: number of towers in library
$000a-$0109: name of library file (0 terminated ASCII string, max. 255 chars)
$0110-$03ff: (unused yet...)
$0400-$17ff: Tower 1
$1800-$2c00: Tower 2
...
One RToB tower (5120 bytes):
$0000-$0003: index of tower in library file (starting with 1)
$0004-$0103: tower title (0 terminated ASCII string, max. 255 chars)
$0104-$0203: tower author (0 terminated ASCII string, max. 255 chars)
$0204-$0207: time limit in seconds
$0208-$020b: number of klondikes to collect
$020c-$020f: number of robots to destroy
$0210-$0213: external cameras enabled? (FALSE=0, TRUE not 0)
$0214-$0217: mine destroys floor?
$0218-$021b: timebomb speed (0: slow / 1: medium / 2: fast)
$021c-$021f: sky color 1 (top)
$0220-$0223: sky color 2 (horizont)
$0224-$0227: sun color
$0228-$022b: sun size (0-10)
$022c-$022f: ground color 1 (ground)
$0230-$0233: ground height (0-10)
$0234-$0237: number of moons (0-3)
$0238-$023b: number of stars (0-100)
$023c-$023f: FX
bit0: lightnings
bit1: meteors
bit2: blue pulse
bit3: clouds
bit4: heavy clouds)
$0240-$0243: floor/box color pattern
0: crossed (original)
1: line by line (original)
2: crossed in half (original)
3: one in four (original)
4: alternated (original)
5: cross faded by level (new)
6: cross faded by line (new)
7: cross faded by radius (new)
$0244-$0247: theme pack (design) (unused yet...)
$0248-$024b: pattern color 1
$024c-$024f: pattern color 2
$0250-$0253: lift color
$0254-$0257: ground color 2 (mountains)
$0260-$027f: demo sequences (max 32 entries)
one byte per demo sequence
bit 0-3: Action (0-15)
0: no action
1: FIRE action
2: UP action
3: DOWN action
4: LEFT action
5: RIGHT action
6: ZAPPER select action
7: PUSHER select action
8: GRABBER select action
9: PROG FIRE action
10: PROG UP action
11: PROG DOWN action
12: PROG LEFT action
13: PROG RIGHT action
14: PROG RUN action
15: PROG CLEAR action
bit 4-7: Pause in seconds (0-15)
$0280-$03ff: tower messages -> 8 messages (48 bytes per message)
$00: Action
0: no action
1: show message on briefing
2: show message in game
3: wait seconds
4: on destroyed (see value parm byte)
5: on activated (see value parm byte)
$01: Value (optional arg for action, maybe element index)
$02-2f: (0 terminated ASCII string, max. 45 chars)
$0400-$13ff: tower elemnts data (4096 bytes)
tower elements data: 16 columns x 16 rows x 8 levels = 2048 elements ( x 2 bytes per element = 4096 bytes)
element in NW of tower (bottom level) is offset: $0400
element in NE of tower (bottom level) is offset: $05e0
element in SW of tower (bottom level) is offset: $041e
element in SE of tower (bottom level) is offset: $05fe
one element is seqerated in two bytes
first byte is index for BASIS ELEMENT (static elements):
TWR_ELEMENT_ID_SPC 0 // (NOTHING)
TWR_ELEMENT_ID_FLR 1 // [BASIS] FLOOR
TWR_ELEMENT_ID_BOX 2 // [BASIS] BOX
TWR_ELEMENT_ID_LFU 3 // [BASIS] LIFT (UP)
TWR_ELEMENT_ID_LFD 4 // [BASIS] LIFT (DOWN)
TWR_ELEMENT_ID_PIL 50 // [BASIS] PILLAR
second byte is index for normal ELEMENT (dynamic elements):
TWR_ELEMENT_ID_ZAP 5 // PLAYERS ZAPPER
TWR_ELEMENT_ID_GRB 6 // PLAYERS GRABBER
TWR_ELEMENT_ID_PSH 7 // PLAYERS PUSHER
TWR_ELEMENT_ID_FZN 8 // FACING ZAPPER (N)
TWR_ELEMENT_ID_FZE 9 // FACING ZAPPER (E)
TWR_ELEMENT_ID_FZS 10 // FACING ZAPPER (S)
TWR_ELEMENT_ID_FZW 11 // FACING ZAPPER (W)
TWR_ELEMENT_ID_FPN 12 // FACING PUSHER (N)
TWR_ELEMENT_ID_FPE 13 // FACING PUSHER (E)
TWR_ELEMENT_ID_FPS 14 // FACING PUSHER (S)
TWR_ELEMENT_ID_FPW 15 // FACING PUSHER (W)
TWR_ELEMENT_ID_RZN 16 // ROTATING ZAPPER (STARTING N)
TWR_ELEMENT_ID_RPN 17 // ROTATING PUSHER (STARTING N)
TWR_ELEMENT_ID_WOE 18 // WORM (STARTING E)
TWR_ELEMENT_ID_WON 19 // WORM (STARTING N)
TWR_ELEMENT_ID_WAT 20 // WATCHER (STARTING N)
TWR_ELEMENT_ID_HOP 21 // HOPPER (STARTING N)
TWR_ELEMENT_ID_PRM 22 // PROXIMITY MINE
TWR_ELEMENT_ID_TMB 23 // TIMEBOMB
TWR_ELEMENT_ID_BLK 24 // BLOCK
TWR_ELEMENT_ID_REL 25 // REFLECTOR
TWR_ELEMENT_ID_PNW 26 // PRISM (N/W)
TWR_ELEMENT_ID_PNE 27 // PRISM (N/E)
TWR_ELEMENT_ID_PSE 28 // PRISM (S/E)
TWR_ELEMENT_ID_PSW 29 // PRISM (S/W)
TWR_ELEMENT_ID_LZE 30 // LIZARD (STARTING E)
TWR_ELEMENT_ID_LZN 31 // LIZARD (STARTING N)
TWR_ELEMENT_ID_KLD 32 // KLONDIKE
TWR_ELEMENT_ID_BFL 33 // BONUS FLAG
TWR_ELEMENT_ID_CVN 34 // CONVERTER (N/S)
TWR_ELEMENT_ID_CVE 35 // CONVERTER (E/W)
TWR_ELEMENT_ID_FCU 36 // FORCER (UP)
TWR_ELEMENT_ID_FCD 37 // FORCER (DOWN)
TWR_ELEMENT_ID_FRZ 38 // FREEZER
TWR_ELEMENT_ID_WIP 39 // WIPER
TWR_ELEMENT_ID_EXC 40 // EXCHANGER
TWR_ELEMENT_ID_DEM 255 // DEMO SEQUENCE CAMERA (invisble)
____________________
ToB Remake - http://www.tower-of-babel.info
Homepage - http://www.latzig.de
Thanks! Just what I needed.
I just wished you had used the original numbering of tower elements. There's some unneccessary mapping going on. After my first conversion to RToB format I was wondering why all prisms faced the wrong direction...
New version of the tool, now even with logo...
RToB format is supported as far as possible.
Please test!!