# --| Syntax for level files |-- 1) **General rule** each file must be named "room_k" where k is a positive integer if "room_k" exists then all "room_u" where 0 <= u < k exists 2) **Data structure** below is a detailled list for all block types ; each block type (Blocks, Teleporters, Entities) must have the corresponding word directly above it not all three keywords have to be written *Data-specific structure :* ``` blocks: [x, y, z, w, h, d, rhz, rvt, r, g, b] teleporters: [x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy] entities: [x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..] *Entity types are :* -> **0 (coin)** -> damage equals the coin's value -> **1 (non-moving explosive)** -> **2 (seeking explosive)** -> **3 (shooting non-moving explosive)** -> **4 (moving platform)** [.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with *<- extra arguments at the end of []* amplitude_{x,y,z} = double[>= 0.0] {mult,divd} = int {phase} = int[0, 360] -> **5 (linear moving platform)** [.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with amplitude_{x,y,z} = double[>= 0.0] speed_{x,y,z} = double -> **6 (text box)** [.. text, tred, tgreen, tblue] with text = {char*} -> **7 (warp text box)** [.. dest_folder, room_count, text, tred, tgreen, tblue] with {dest_folder,text} = {char*} (length <= 50) {r,g,b} = int[0-256] -> **8 (lock box)** [.. cost, doPay, tred, tgreen, tblue] with cost = int[> 0] (0 breaks) doPay = {0, 1} (bool) ```