{
  prefs: {
    INPUT_UP:       "KEY: w",
    INPUT_DOWN:     "KEY: s",
    INPUT_LEFT:     "KEY: a",
    INPUT_RIGHT:    "KEY: d",
    INPUT_ACTION1:  "KEY: p",
    INPUT_ACTION2:  "KEY: l",
    INPUT_ACTION3:  "KEY: SPACE",
    INPUT_LMB:      "MOUSE: LMB",
    INPUT_RMB:      "MOUSE: RMB",
    INPUT_MMB:      "MOUSE: MMB",
    INPUT_JPAD_UP:  "JPAD: UP",
    INPUT_JPAD_DN:  "JPAD: DN",
    INPUT_JPAD_LF:  "JPAD: LF",
    INPUT_JPAD_RT:  "JPAD: RT",
    INPUT_JPAD_DPAD_UP:  "JPAD: DPAD_UP",
    INPUT_JPAD_DPAD_DN:  "JPAD: DPAD_DN",
    INPUT_JPAD_DPAD_LF:  "JPAD: DPAD_LF",
    INPUT_JPAD_DPAD_RT:  "JPAD: DPAD_RT",
    INPUT_JPAD_B1:  "JPAD: B1",
    INPUT_JPAD_B2:  "JPAD: B2",
    INPUT_JPAD_B3:  "JPAD: B3",
    INPUT_JPAD_B4:  "JPAD: B4",
    SCREEN_WIDTH: 1280,
    SCREEN_HEIGHT: 720,
    SCREEN_FULL: 0,
  },
  setup: {
    WINDOW_TITLE: "Jaffa: Cyber City Punchout",
    MOUSE_INVERT_Y: 0,
    MOUSE_SENSITIVITY_X: 1.0,
    MOUSE_SENSITIVITY_Y: 1.0,
    GAME_SEED: 14531089,
    TIME_MULT: 1.0,
    BASE_SCREEN_WIDTH: 1280,
    BASE_SCREEN_HEIGHT: 720,
    KEEP_ASPECT: true,
    FRAME_RATE: 60,
    FRAME_SKIP: 0,
    fonts: [
        { name: "PICK-TITLE",  file:"OpenDyslexic-Bold.ttf" },
        { name: "PICK-TEXT",   file:"OpenDyslexic-Regular.ttf" },
        { name: "DEFAULT",     file:"roboto-bold.ttf" },
        { name: "REGULAR",     file:"roboto-regular.ttf" },
        { name: "MONO",        file:"roboto-mono-regular.ttf" },
        { name: "TITLE",       file:"roboto-bold.ttf" },
    ],
    inputs: [
        { name: "INTRO", file:"INPUT-INTRO-[INPUT-METHOD].json" },
        { name: "TITLE", file:"INPUT-TITLE-[INPUT-METHOD].json" },
        { name: "PAUSE", file:"INPUT-PAUSE-[INPUT-METHOD].json" },
        { name: "HELP",  file:"INPUT-HELP-[INPUT-METHOD].json" },
        { name: "ACCESS",file:"INPUT-ACCESS-[INPUT-METHOD].json" },
        { name: "OPTIONS",file:"INPUT-OPTIONS-[INPUT-METHOD].json" },
        { name: "CONTROLS",file:"INPUT-CONTROLS-[INPUT-METHOD].json" },
        { name: "SETTINGS",file:"INPUT-SETTINGS-[INPUT-METHOD].json" },
        { name: "SOUND", file:"INPUT-SOUND-[INPUT-METHOD].json" },
        { name: "VIDEO", file:"INPUT-VIDEO-[INPUT-METHOD].json" },
        { name: "GAME",  file:"INPUT-GAME-[INPUT-METHOD].json" },
        { name: "GAMEOVER",  file:"INPUT-GAMEOVER-[INPUT-METHOD].json" },
    ],
    sounds: [
      { id: SHOOT_FX,       u_type: FXSoundTB,     u: { file: "shoot.ogg" } },

      { id: BEAM_FX,        u_type: FXSoundTB,     u: { file: "beam1.ogg" } },
      { id: LIGHT_FX,       u_type: FXSoundTB,     u: { file: "lightning3.ogg" } },
      { id: FIRE_BOLT_FX,   u_type: FXSoundTB,     u: { file: "particle.ogg" } },
      { id: FIRE_CIRCLE_FX, u_type: FXSoundTB,     u: { file: "particle-fast.ogg" } },
      { id: FIRE_RAINBOLT_FX,     u_type: FXSoundTB,     u: { file: "particle-high.ogg" } },
      { id: FIRE_SMALL_PURPLE_FX, u_type: FXSoundTB,     u: { file: "particle-shot.ogg" } },
      { id: FIRE_EXPANDING_FX,    u_type: FXSoundTB,     u: { file: "particle-slow.ogg" } },
      { id: SMALL_FIRE_CIRCLE_FX, u_type: FXSoundTB,     u: { file: "particle-fast.ogg" } },

      { id: ZAPPED_FX,      u_type: FXSoundTB,     u: { file: "player-zapped.ogg" } },
      { id: BLASTED_FX,     u_type: FXSoundTB,     u: { file: "player-blasted.ogg" } },
      { id: MELTING_FX,     u_type: FXSoundTB,     u: { file: "player-melted.ogg" } },
      { id: POWUP_EXP_FX,   u_type: FXSoundTB,     u: { file: "powup-pickup.ogg" } },
      { id: ATV_FISH_FX,    u_type: FXSoundTB,     u: { file: "atv-fish.ogg" } },
      { id: ATV_ARMOUR_FX,  u_type: FXSoundTB,     u: { file: "atv-armour.ogg" } },
      { id: GET_SUPER_FX,   u_type: FXSoundTB,     u: { file: "get-super.ogg" } },
      { id: ARMOUR_ON_FX,   u_type: FXSoundTB,     u: { file: "armour.ogg", looping: true } },
      { id: SHIELD_HIT_FX,  u_type: FXSoundTB,     u: { file: "hit-shield.ogg" } },

      { id: HIT_ROBOT_FX,   u_type: FXSoundTB,     u: { file: "hit-robot.ogg" } },
      { id: HIT_TOWER_FX,   u_type: FXSoundTB,     u: { file: "hit-tower.ogg" } },
      { id: HIT_SPINNER_FX, u_type: FXSoundTB,     u: { file: "hit-spinner.ogg" } },
      { id: EXP_ROBOT_FX,   u_type: FXSoundTB,     u: { file: "robot-exp.ogg" } },
      { id: EXP_SPINNER_FX, u_type: FXSoundTB,     u: { file: "spinner-exp.ogg" } },

      { id: DBZ_PUNCH_FX,   u_type: FXSoundTB,     u: { file: "punch.ogg", looping: true } },
      { id: PUNCH_FX,       u_type: FXSoundTB,     u: { file: "punch.ogg", looping: true } },
      { id: CHARGE_FX,      u_type: FXSoundTB,     u: { file: "punch-charge.ogg", looping: true } },

      { id: LIFT_LEAVE_FX,  u_type: FXSoundTB,     u: { file: "lift-leave.ogg" } },
      { id: LIFT_STAY_FX,   u_type: FXSoundTB,     u: { file: "lift-stay.ogg" } },
      { id: BREAK_CELL_FX,  u_type: FXSoundTB,     u: { file: "break-cell.ogg" } },
      { id: MAP_NODE_FX,    u_type: FXSoundTB,     u: { file: "hit-node.ogg" } },
      { id: TELEPORT_FX,    u_type: FXSoundTB,     u: { file: "teleport.ogg" } },
      { id: ALARM_FX,       u_type: FXSoundTB,     u: { file: "cell-alarm.ogg" } },
      { id: NODE_PICKUP_FX, u_type: FXSoundTB,     u: { file: "node-pickup.ogg" } },

      { id: VIS_TRACKER_FX, u_type: FXSoundTB,     u: { file: "robot-bkg-echohum.ogg", looping: true } },
      { id: VIS_BEZERK_FX,  u_type: FXSoundTB,     u: { file: "robot-bkg-echohum.ogg", looping: true } },
      { id: VIS_ZAPPER_FX,  u_type: FXSoundTB,     u: { file: "robot-bkg-electric.ogg", looping: true } },
      { id: VIS_BOLTER_FX,  u_type: FXSoundTB,     u: { file: "robot-bkg-electric.ogg", looping: true } },
      { id: VIS_VINCENT_FX, u_type: FXSoundTB,     u: { file: "robot-bkg-electrohum.ogg", looping: true } },
      { id: VIS_SECURITY_FX,u_type: FXSoundTB,     u: { file: "robot-bkg-spacey.ogg", looping: true } },
      { id: VIS_SPINNER_FX, u_type: FXSoundTB,     u: { file: "robot-bkg-dodo.ogg", looping: true } },
      { id: VIS_CLAWER_FX,  u_type: FXSoundTB,     u: { file: "robot-bkg-underhum.ogg", looping: true } },
      { id: VIS_MAXIMILLIAN_FX, u_type: FXSoundTB, u: { file: "robot-bkg-pulse.ogg", looping: true } },
      { id: VIS_TRANSPORTER_FX, u_type: FXSoundTB, u: { file: "robot-bkg-hum.ogg", looping: true } },

      { id: INTRO_MUSIC,    u_type: MusicSoundTB,  u: { file: "Steamtech-Mayhem.ogg", looping: false } },
      { id: TITLE_MUSIC,    u_type: MusicSoundTB,  u: { file: "Steamtech-Mayhem.ogg", looping: true } },
      { id: MAIN_MUSIC,     u_type: MusicSoundTB,  u: { file: "Steamtech-Mayhem.ogg", looping: false } },
      { id: ALERT_SPFX,     u_type: SpeechSoundTB, u: { text: "Alert! Alert!......Security Breach!" } },
      { id: ALERT1_SPFX,    u_type: SpeechSoundTB, u: { text: "Alert! Alert!......Sector one Security Breach!" } },
      { id: ALERT2_SPFX,    u_type: SpeechSoundTB, u: { text: "Alert! Alert!......Sector two Security Breach!" } },
      { id: ALERT3_SPFX,    u_type: SpeechSoundTB, u: { text: "Alert! Alert!......Sector three Security Breach!" } },
      { id: ALERT4_SPFX,    u_type: SpeechSoundTB, u: { text: "Alert! Alert!......Sector four Security Breach!" } },
      { id: DESTROY_SPFX,   u_type: SpeechSoundTB, u: { text: "Greetings priissoner. I am Orac...master of all I survay........Staay ah while...Stay foreverrrrrrr" } },
      { id: CANTHURT_SPFX,  u_type: SpeechSoundTB, u: { text: "Your efforts are futile" } },
      { id: HASHURT_SPFX,   u_type: SpeechSoundTB, u: { text: "Impossible.........Such power...Does not compute" } },
      { id: LOST_0_SPFX,    u_type: SpeechSoundTB, u: { text: "Ha Ha Ha Ha.......You can not win" } },
      { id: LOST_1_SPFX,    u_type: SpeechSoundTB, u: { text: "Ha Ha Ha Ha Ha Ha Ha Ha" } },
      { id: LOST_2_SPFX,    u_type: SpeechSoundTB, u: { text: "My robots can not be defeated" } },
      { id: LOST_3_SPFX,    u_type: SpeechSoundTB, u: { text: "Resistance is futile" } },
      { id: LOST_4_SPFX,    u_type: SpeechSoundTB, u: { text: "You will join your crew in the cells" } },
    ],
    vectorGraphics: "vector-graphics",
    vectorDrawIntro: "vector-intro.fb",
    vectorDrawOver: "vector-over.fb",
    vectorDrawWon: "vector-won.fb",
    vectorFont: "imperial-one.fb",
    // NOTE: This 1st entry is the bottom (last) maze
    mazeInfos: [
    // 0 - Tiny, empty, boss level
    {
        seed:          0x4321,
        openPlan:      100,
        cellsWide:     9,
        cellsHigh:     7,
        cellTilesWide: 12,
        cellTilesHigh: 12,
        tilePowWidth:  5,
        tilePowHeight: 5,
        borderLeft:    65,
        borderRight:   65,
        borderTop:     65,
        borderBottom:  65,
        flagMask:      0x00000000,
        emptyMask:     0xffffffff,
        borderMask:    0x00000000,
        unreachables:  [ { x:4, y:1 },
            { x:1, y:5 },
            { x:7, y:5 },
        ],
        mapNodeGridWidth:  0,
        mapNodeGridHeight: 0,
        mapCollInfo:     "collinfo-walls.fb",
        mapAtlas:        "map-walls.tga",
        wallThickAdjust: 8,
        hexFloor:        true,
        floorColor:      0x2b451828,
        robots: [
            { id: BOSS, cx:4, cy:4 },
        ],
    },
    // 1 - Fairly big, no open plan. Need Lots of map nodes?
    {
        seed:          0x4321,
        openPlan:      0,
        cellsWide:     27,
        cellsHigh:     16,
        cellTilesWide: 12,
        cellTilesHigh: 12,
        tilePowWidth:  5,
        tilePowHeight: 5,
        borderLeft:    65,
        borderRight:   65,
        borderTop:     65,
        borderBottom:  65,
        flagMask:      0x00000000,
        emptyMask:     0xffffffff,
        borderMask:    0x00000000,
        unreachables:  [ { x:13, y:15 },
            { x:3, y:3 },
            { x:23, y:3 },
            { x:4, y:14 },
            { x:22, y:14 }
        ],
        mapNodeGridWidth:  7,
        mapNodeGridHeight: 4,
        mapCollInfo:     "collinfo-walls-thick.fb",
        mapAtlas:        "map-walls-thick-r-n-g.tga",
        wallThickAdjust: 0,
        hexFloor:        false,
        floorColor:        0x73367628,
        floorRectSize:   0.7,
        floorInDiamSize: 0.3,
        floorOutDiamSize: 0.4,
        floorDiamRotate: 0.25,
        floorScale:     0.5,
        robots: [
            { id: VINCENT, cx:3, cy:2 },
            { id: VINCENT, cx:23, cy:2 },
            { id: VINCENT, cx:4, cy:13 },
            { id: VINCENT, cx:22, cy:13 },
            { id: CLAWER,  qw:3, qh:4, qx:0, qy:1 },
            { id: CLAWER,  qw:3, qh:4, qx:0, qy:1 },
            { id: CLAWER,  qw:3, qh:4, qx:2, qy:1 },
            { id: CLAWER,  qw:3, qh:4, qx:2, qy:1 },
            { id: CLAWER,  qw:3, qh:4, qx:1, qy:0 },
            { id: CLAWER,  qw:3, qh:4, qx:1, qy:0 },
            { id: CLAWER,  qw:3, qh:4, qx:2, qy:0 },
            { id: CLAWER,  qw:3, qh:4, qx:1, qy:1 },
            { id: CLAWER,  qw:3, qh:4, qx:2, qy:2 },
            { id: TRACKER, qw:3, qh:4, qx:0, qy:0 },
            { id: TRACKER, qw:3, qh:4, qx:2, qy:0 },
            { id: TRACKER, qw:3, qh:4, qx:0, qy:3 },
            { id: TRACKER, qw:3, qh:4, qx:2, qy:3 },
        ],
    },
    // 2 - big, wide cells, lots of prisoners
    {
        seed:          0x4321,
        openPlan:      10,
        cellsWide:     31,
        cellsHigh:     18,
        cellTilesWide: 16,
        cellTilesHigh: 16,
        tilePowWidth:  5,
        tilePowHeight: 5,
        borderLeft:    65,
        borderRight:   65,
        borderTop:     65,
        borderBottom:  65,
        flagMask:      0x00000000,
        emptyMask:     0xffffffff,
        borderMask:    0x00000000,
        unreachables:  [ { x:15, y:7 },
            { x:4, y:12 },
            { x:5, y:12 },
            { x:6, y:12 },
            { x:27, y:6 },
            { x:26, y:6 },
            { x:25, y:6 },
        ],
        mapNodeGridWidth:  4,
        mapNodeGridHeight: 3,
        mapCollInfo:     "collinfo-walls-thick.fb",
        mapAtlas:        "map-walls-thick-green.tga",
        wallThickAdjust: 0,
        hexFloor:        true,
        floorColor:      0x663a2f28,
        floorScale:      0.25,
        robots: [
            { id: TRANSPORTER, cx:1, cy:1 },
            { id: TRANSPORTER, cx:1, cy:16 },
            { id: TRANSPORTER, cx:29, cy:16 },
            { id: TRANSPORTER, cx:29, cy:1 },
            { id: TRANSPORTER, cx:4, cy:8 },
            { id: TRANSPORTER, cx:27, cy:8 },
            { id: MAXIMILLIAN, cx:11, cy:11 },
            { id: MAXIMILLIAN, cx:15, cy:11 },
            { id: MAXIMILLIAN, cx:19, cy:11 },
            { id: MAXIMILLIAN, cx:19, cy:7 },
            { id: MAXIMILLIAN, cx:19, cy:3 },
            { id: MAXIMILLIAN, cx:15, cy:3 },
            { id: MAXIMILLIAN, cx:11, cy:3 },
            { id: MAXIMILLIAN, cx:11, cy:7 },
        ],
    },
    // 3 - big, normal, lots of prisoners
    {
        seed:          0x4321,
        openPlan:      15,
        cellsWide:     31,
        cellsHigh:     18,
        cellTilesWide: 12,
        cellTilesHigh: 12,
        tilePowWidth:  5,
        tilePowHeight: 5,
        borderLeft:    65,
        borderRight:   65,
        borderTop:     65,
        borderBottom:  65,
        flagMask:      0x00000000,
        emptyMask:     0xffffffff,
        borderMask:    0x00000000,
        unreachables:  [ { x:15, y:1 },
            { x:3, y:17 },
            { x:6, y:17 },
            { x:9, y:17 },
            { x:12, y:17 },
            { x:15, y:17 },
            { x:18, y:17 },
            { x:21, y:17 },
            { x:24, y:17 },
            { x:27, y:17 },
        ],
        mapNodeGridWidth:  4,
        mapNodeGridHeight: 3,
        mapCollInfo:     "collinfo-walls-thick.fb",
        mapAtlas:        "map-walls-thick-r-n-g.tga",
        wallThickAdjust: 0,
        hexFloor:        false,
        floorColor:      0x080c0b28,
        floorRectSize:   0.0,
        floorInDiamSize: 0.3,
        floorOutDiamSize: 0.718,
        floorScale:      0.5,
        robots: [
            { id: BOLT_TOWER,  cx:7,  cy:16 },
            { id: LIGHT_TOWER, cx:13, cy:16 },
            { id: BOLT_TOWER,  cx:17, cy:16 },
            { id: LIGHT_TOWER, cx:23, cy:16 },
            { id: SPINNER, cx:5,  cy:13 },
            { id: SPINNER, cx:26, cy:13 },
            { id: SPINNER, cx:20, cy:13 },
            { id: SPINNER, cx:11, cy:13 },
            { id: CLAWER,  cx:9,  cy:11 },
            { id: CLAWER,  cx:16, cy:10 },
            { id: CLAWER,  cx:22, cy:11 },
            { id: MAXIMILLIAN,  qw:5,  qh:4, qx:1, qy:1 },
            { id: MAXIMILLIAN,  qw:5,  qh:4, qx:4, qy:1 },
            { id: BEZERK,  qw:5,  qh:3, qx:1, qy:0 },
            { id: BEZERK,  qw:5,  qh:3, qx:3, qy:0 },
            { id: TRACKER, qw:5,  qh:3, qx:2, qy:1 },
            { id: TRANSPORTER, qw:5,  qh:3, qx:0, qy:1 },
            { id: TRANSPORTER, qw:5,  qh:3, qx:4, qy:1 },
        ],
    //TRACKER, ZAPPER, BOLTER, BEZERK, BEZERK_BOLT,
    //TRANSPORTER, SPINNER, SECURITY, CLAWER,
    //TOWER, //BOLT_TOWER, LIGHT_TOWER,
    //VINCENT, MAXIMILLIAN,
    },
    // 4 - Very small, wide cells and open, fill with spinners?
    {
        seed:          0x4321,
        openPlan:      20,
        cellsWide:     15,
        cellsHigh:     9,
        cellTilesWide: 16,
        cellTilesHigh: 16,
        tilePowWidth:  5,
        tilePowHeight: 5,
        borderLeft:    65,
        borderRight:   65,
        borderTop:     65,
        borderBottom:  65,
        flagMask:      0x00000000,
        emptyMask:     0xffffffff,
        borderMask:    0x00000000,
        unreachables:  [ { x:7, y:8 },
            { x:0, y:4 },
            { x:0, y:1 },
            { x:14, y:4 },
            { x:14, y:1 } ],
        mapNodeGridWidth:  3,
        mapNodeGridHeight: 3,
        mapCollInfo:     "collinfo-walls.fb",
        mapAtlas:        "map-walls.tga",
        wallThickAdjust: 8,
        hexFloor:        true,
        floorColor:      0x2b451828,
        robots: [
            { id: SPINNER, qw:5, qh:3, qx:0, qy:0 },
            { id: SPINNER, qw:5, qh:3, qx:0, qy:1 },
            { id: SPINNER, qw:5, qh:3, qx:0, qy:2 },
            { id: SPINNER, qw:5, qh:3, qx:1, qy:0 },
            { id: SPINNER, qw:5, qh:3, qx:1, qy:1 },
            { id: SPINNER, qw:5, qh:3, qx:1, qy:2 },
            { id: SPINNER, qw:5, qh:3, qx:2, qy:0 },
            { id: SPINNER, qw:5, qh:3, qx:2, qy:1 },
            { id: SPINNER, qw:5, qh:3, qx:2, qy:2 },
            { id: SPINNER, qw:5, qh:3, qx:3, qy:0 },
            { id: SPINNER, qw:5, qh:3, qx:3, qy:1 },
            { id: SPINNER, qw:5, qh:3, qx:3, qy:2 },
            { id: SPINNER, qw:5, qh:3, qx:4, qy:0 },
            { id: SPINNER, qw:5, qh:3, qx:4, qy:1 },
            { id: SPINNER, qw:5, qh:3, qx:4, qy:2 },
        ],
    },
    // 5 - Big, maze, not very open
    {
        seed:          0x1234,
        openPlan:      5,
        cellsWide:     32,
        cellsHigh:     18,
        cellTilesWide: 12,
        cellTilesHigh: 12,
        tilePowWidth:  5,
        tilePowHeight: 5,
        borderLeft:    65,
        borderRight:   65,
        borderTop:     65,
        borderBottom:  65,
        flagMask:      0x00000000,
        emptyMask:     0xffffffff,
        borderMask:    0x00000000,
        unreachables:  [ { x:15, y:1 },
            { x:1, y:16 },
            { x:1, y:14 },
            { x:3, y:16 },
            { x:3, y:14 },
            { x:30, y:16 },
            { x:30, y:14 },
            { x:28, y:16 },
            { x:28, y:14 } ],
        mapNodeGridWidth:  8,
        mapNodeGridHeight: 3,
        mapCollInfo:     "collinfo-walls-thick.fb",
        mapAtlas:        "map-walls-thick-green.tga",
        wallThickAdjust: 0,
        hexFloor:        false,
        floorColor:      0x2b451828,
        floorScale:      0.5,
        floorRectSize:   0.9,
        floorInDiamSize: 0.3,
        floorOutDiamSize: 0.2,
        robots: [
            { id: BEZERK,  qw:4,  qh:6, qx:0, qy:4 },
            { id: BEZERK,  qw:4,  qh:6, qx:0, qy:5 },
            { id: BEZERK,  qw:4,  qh:6, qx:1, qy:4 },
            { id: BEZERK,  qw:4,  qh:6, qx:1, qy:5 },
            { id: BEZERK,  qw:4,  qh:6, qx:2, qy:4 },
            { id: BEZERK,  qw:4,  qh:6, qx:2, qy:5 },
            { id: BEZERK,  qw:4,  qh:6, qx:3, qy:4 },
            { id: BEZERK,  qw:4,  qh:6, qx:3, qy:5 },
        ],
    },
    // 6 - Fairly big, very open plan
    {
        seed:          0x4321,
        openPlan:      25,
        cellsWide:     25,
        cellsHigh:     16,
        cellTilesWide: 12,
        cellTilesHigh: 12,
        tilePowWidth:  5,
        tilePowHeight: 5,
        borderLeft:    65,
        borderRight:   65,
        borderTop:     65,
        borderBottom:  65,
        flagMask:      0x00000000,
        emptyMask:     0xffffffff,
        borderMask:    0x00000000,
        unreachables:  [ { x:1, y:1 },
            { x:1, y:15 },
            { x:24, y:15 },
            { x:24, y:4 },
            { x:12, y:8 } ],
        mapNodeGridWidth:  4,
        mapNodeGridHeight: 3,
        mapCollInfo:     "collinfo-walls.fb",
        mapAtlas:        "map-walls-thin-green.tga",
        wallThickAdjust: 8,
        hexFloor:        false,
        floorColor:      0x801d2028,
        floorScale:      0.5,
        floorRectSize:   0.355,
        floorInDiamSize: 0.3,
        floorOutDiamSize: 0.718,

        robots: [
            { id: TRANSPORTER, cx:0, cy:0 },
            { id: TRANSPORTER, cx:24, cy:15 },
            { id: SPINNER, qw:2, qh:2, qx:0, qy:0 },
            { id: SPINNER, qw:2, qh:2, qx:0, qy:1 },
            { id: SPINNER, qw:2, qh:2, qx:1, qy:0 },
            { id: SPINNER, qw:2, qh:2, qx:1, qy:1 },
            { id: LIGHT_TOWER, cx:6,  cy:13 },
            { id: LIGHT_TOWER, cx:20, cy:2 },
            { id: BOLT_TOWER,  cx:15, cy:7 },
            { id: BOLT_TOWER,  cx:20, cy:9 },
            { id: TRACKER, qw:5, qh:4, qx:0, qy:0 },
            { id: TRACKER, qw:5, qh:4, qx:2, qy:2 },
            { id: TRACKER, qw:5, qh:4, qx:3, qy:2 },
            { id: TRACKER, qw:5, qh:4, qx:4, qy:0 },
            { id: BEZERK_BOLT, qw:5, qh:4, qx:1, qy:2 },
            { id: BEZERK_BOLT, qw:5, qh:4, qx:3, qy:2 },
            { id: BEZERK_BOLT, qw:5, qh:4, qx:2, qy:0 },
        ],
    },
    // 7 - Big, normal maze
    {
        seed:          0x4321,
        openPlan:      10,
        cellsWide:     32,
        cellsHigh:     18,
        cellTilesWide: 12,
        cellTilesHigh: 12,
        tilePowWidth:  5,
        tilePowHeight: 5,
        borderLeft:    65,
        borderRight:   65,
        borderTop:     65,
        borderBottom:  65,
        flagMask:      0x00000000,
        emptyMask:     0xffffffff,
        borderMask:    0x00000000,
        unreachables:  [ { x:16, y:8 },
            { x:3, y:3 },
            { x:28, y:3 },
            { x:3, y:14 },
            { x:28, y:14 } ],
        mapNodeGridWidth:  8,
        mapNodeGridHeight: 3,
        mapCollInfo:     "collinfo-walls.fb",
        mapAtlas:        "map-walls.tga",
        wallThickAdjust: 8,
        hexFloor:        true,
        floorColor:      0x63123c28,
        floorRectSize:   0.355,
        floorInDiamSize: 0.3,
        floorOutDiamSize: 0.718,
        floorScale:      0.5,
        robots: [
            { id: TRANSPORTER, cx:0, cy:0 },
            { id: TRANSPORTER, cx:31, cy:17 },
            { id: TRANSPORTER, cx:0, cy:17 },
            { id: TRANSPORTER, cx:31, cy:0 },
            { id: TRACKER, qw:4, qh:3, qx:0, qy:1 },
            { id: TRACKER, qw:4, qh:3, qx:1, qy:2 },
            /*
            { id: ZAPPER, qw:4, qh:3, qx:2, qy:1 },
            { id: ZAPPER, qw:4, qh:3, qx:3, qy:2 },
            */
            { id: BOLTER, qw:4, qh:3, qx:2, qy:1 },
            { id: BOLTER, qw:4, qh:3, qx:3, qy:2 },

            { id: BOLTER, qw:4, qh:3, qx:0, qy:1 },
            { id: BOLTER, qw:4, qh:3, qx:1, qy:2 },
            { id: TRACKER, qw:4, qh:3, qx:2, qy:1 },
            { id: TRACKER, qw:4, qh:3, qx:3, qy:2 },
            { id: BEZERK_BOLT, cx:3, cy:2 },
            { id: BEZERK_BOLT, cx:28, cy:2 },
            { id: VINCENT, cx:3, cy:13 },
            { id: VINCENT, cx:28, cy:13 },
        ],
    },
    ],
    mapTexWidth:     2048,
    mapTexHeight:    2048,
    noiseImage2D:    "noise.2D.tga",
    noiseImage3D:    "noise.3D.4250_11_4.png"
  },
  // Will try "robots.fb" then "robots.json"
  robots: "robots",
  LOG_LEVEL: "DEBUG"
}
