Go to file
Alexandre 89ac335034 completed level_02 2025-02-27 15:14:56 +01:00
.vscode finished math module (v1.0) 2025-02-26 22:48:12 +01:00
bin completed level_02 2025-02-27 15:14:56 +01:00
include IM FREEEEEEEEE 2025-01-30 21:45:46 +01:00
levels completed level_02 2025-02-27 15:14:56 +01:00
obj completed level_02 2025-02-27 15:14:56 +01:00
res completed level_02 2025-02-27 15:14:56 +01:00
sound finished math module (v1.0) 2025-02-26 22:48:12 +01:00
src completed level_02 2025-02-27 15:14:56 +01:00
templates changed polling for math + added mathBlock 2025-02-27 10:51:49 +01:00
Makefile fixed music still playing upon closing application + started working on math module 2025-02-26 10:59:27 +01:00
README.md changed polling for math + added mathBlock 2025-02-27 10:51:49 +01:00

README.md

--| Syntax for level files |--

  1. General rules
    . 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

. you can add text at the end of each line as comments
but do not use caps, this might confuse the parser

  1. 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 ..]


    |> if entityType >= 4, use 1 for HP and 0 for damage <|
    |> *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)

    -> 9 (beat block)
        [.. ontime, offtime, start] with
            {ontime,offtime} = double[>0.0]
            start = {0,1}

    -> 10 (spinning platform)
        [.. hz_speed, vt_speed] with
            {hz_speed,vt_speed} = double

    -> 11 (button trigger)
        [.. freq, dtime] with
            freq = int[0 - 15]
            dtime = double([>0.0] for time-limited press, or use -1.0 if no deactivation)

    -> 12 (button block)
        [.. freq, defaultState] with
            freq = int[0 - 15]
            defaultState = {0, 1}

    -> 13 (math block)
        [.. defaultState, timeOff] with
            defaultState = {0, 1}
            dtime = double([>0.0] for time-limited press, or use -1.0 if no deactivation)