X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=data%2Fscenes%2FClassic.lua;h=2ec9e0271a2789f246b128a788414e79e3be4cca;hp=4cae26a55966de206ca1b1f7f1950c1554e4f55b;hb=4f62ce947db282f0bbf4d49b3aafb83d7cf51adc;hpb=892da43bf5796e7c5f593a6d0f53bd797a36bd3e diff --git a/data/scenes/Classic.lua b/data/scenes/Classic.lua index 4cae26a..2ec9e02 100644 --- a/data/scenes/Classic.lua +++ b/data/scenes/Classic.lua @@ -3,25 +3,26 @@ -- created by Neil Carter -- converted to Lua by Charles McGarvey +LogInfo("-----", "Scene: Classic", "Created by Neil Carter", + "Converted to Lua by Charles McGarvey", "-----") + -- Scene API: -- -- Functions: --- SetPlayfieldBounds(point1, point2) --- SetMaximumBounds(point1, point2) +-- SetBounds(point1, point2) -- ResetTransform() -- Translate(x, y, z) -- Scale(x, y, z) or Scale(xyz) -- Rotate(axis, degree) or Rotate(x, y, z) -- SetTexture(name) --- MakeTilemap({width = ..., surface_type = ..., tiles = {}}) --- MakeBillboard({tile = ..., u_scale = ...}) +-- DrawTilemap({width = $num, [surface = TOP | LEFT | RIGHT], tiles}) +-- DrawTile(tile, [u_scale]) -- -- Globals: --- detail - level of detail of the scene +-- detail - level of detail of the scene (HIGH, MEDIUM, or LOW) -SetPlayfieldBounds({0, 0, -100}, {1280, 500, 100}) -SetMaximumBounds({-160, 0, -192}, {1440, 480, 224}) +SetBounds({-5, 0, -6}, {45, 15, 7}) -- Left end tower block @@ -30,135 +31,112 @@ SetMaximumBounds({-160, 0, -192}, {1440, 480, 224}) -- Front ResetTransform() -Translate(-5, 0, 5) -Scale(32) +Translate(-5, 0, 2) SetTexture("TowerBlock1") -MakeTilemap({ +DrawTilemap({ width = 5, - tiles = { - 2, 2, 2, 2, 2, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 4, 4, 4, 4, 4 - } -}) + 2, 2, 2, 2, 2, + 1, 0, 0, 1, 0, + 1, 0, 0, 1, 0, + 1, 0, 0, 1, 0, + 1, 0, 0, 1, 0, + 1, 0, 0, 1, 0, + 1, 0, 0, 1, 0, + 1, 0, 0, 1, 0, + 1, 0, 0, 1, 0, + 1, 0, 0, 1, 0, + 1, 0, 0, 1, 0, + 1, 0, 0, 1, 0, + 1, 0, 0, 1, 0, + 1, 0, 0, 1, 0, + 4, 4, 4, 4, 4}) -- Right side ResetTransform() Rotate(Y, 90) -Translate(0, 0, 5) -Scale(32) -MakeTilemap({ +Translate(0, 0, 2) +DrawTilemap({ width = 5, - surface_type = RIGHT, - tiles = { - 2, 2, 2, 2, 2, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, - 4, 5, 5, 5, 4 - } -}) + surface = RIGHT, + 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, + 4, 5, 5, 5, 4}) -- Top ResetTransform() Rotate(X, 90) -Translate(-5, 15, 0) -Scale(32) -MakeTilemap({ +Translate(-5, 15, -3) +DrawTilemap({ width = 5, - surface_type = TOP, - tiles = { - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3 - } -}) + surface = TOP, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3}) -- Leftmost background tower block -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Front -if detail > 1 then +if detail > LOW then ResetTransform() - Scale(32) - MakeTilemap({ + Translate(0, 0, -3) + DrawTilemap({ width = 7, - tiles = { - 2, 2, 2, 2, 2, 2, 2, - 0, 1, 0, 0, 0, 1, 0, - 0, 1, 0, 0, 0, 1, 0, - 0, 1, 0, 0, 6, 1, 0, - 0, 1, 0, 0, 0, 1, 0, - 0, 1, 0, 0, 0, 1, 0, - 0, 1, 0, 0, 0, 1, 0, - 4, 4, 5, 5, 5, 4, 4 - } - }) + 2, 2, 2, 2, 2, 2, 2, + 0, 1, 0, 0, 0, 1, 0, + 0, 1, 0, 0, 0, 1, 0, + 0, 1, 0, 0, 6, 1, 0, + 0, 1, 0, 0, 0, 1, 0, + 0, 1, 0, 0, 0, 1, 0, + 0, 1, 0, 0, 0, 1, 0, + 4, 4, 5, 5, 5, 4, 4}) -- Right side ResetTransform() Rotate(Y, 90) - Translate(7, 0, 0) - Scale(32) - MakeTilemap({ + Translate(7, 0, -3) + DrawTilemap({ width = 6, - tiles = { - 2, 2, 2, 2, 2, 2, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 4, 4, 4, 4, 4, 4 - } - }) + 2, 2, 2, 2, 2, 2, + 0, 1, 0, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 4, 4, 4, 4, 4, 4}) -- Top ResetTransform() Rotate(X, 90) - Translate(-2, 8, -6) - Scale(32) - MakeTilemap({ + Translate(-2, 8, -9) + DrawTilemap({ width = 9, - tiles = { - 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3 - } - }) + 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3}) end -- Foreground building with pitched roof @@ -168,92 +146,70 @@ end ResetTransform() Rotate(Y, -90) -Translate(10, 0, 1) -Scale(32) +Translate(10, 0, -2) SetTexture("Building") -MakeTilemap({ +DrawTilemap({ width = 4, - surface_type = LEFT, - tiles = { - -1, 9, 11, -1, - 9, 10, 12, 11, - 15, 7, 7, 16, - 3, 5, 6, 4, - 3, 6, 5, 4 - } -}) + surface = LEFT, + -1, 9, 11, -1, + 9, 10, 12, 11, + 15, 7, 7, 16, + 3, 5, 6, 4, + 3, 6, 5, 4}) -- Right wall ResetTransform() Rotate(Y, -90) -Translate(13, 0, 1) -Scale(32) -MakeTilemap({ +Translate(13, 0, -2) +DrawTilemap({ width = 4, - surface_type = RIGHT, - tiles = { - -1, 9, 11, -1, - 9, 10, 12, 11, - 15, 7, 7, 16, - 3, 5, 6, 4, - 3, 8, 5, 4 - } -}) + surface = RIGHT, + -1, 9, 11, -1, + 9, 10, 12, 11, + 15, 7, 7, 16, + 3, 5, 6, 4, + 3, 8, 5, 4}) -- Front wall ResetTransform() -Translate(10, 0, 5) -Scale(32) -MakeTilemap({ +Translate(10, 0, 2) +DrawTilemap({ width = 3, - tiles = { - 15, 7, 16, - 3, 5, 4, - 3, 6, 4 - } -}) + 15, 7, 16, + 3, 5, 4, + 3, 6, 4}) -- Pitched roof ResetTransform() Rotate(X, 135) Scale(1, 1.5, 1.5) -Translate(10, 5, 3) -Scale(32) -MakeTilemap({ +Translate(10, 5, 0) +DrawTilemap({ width = 3, - tiles = { - 13, 13, 13, - 13, 13, 13 - } -}) + 13, 13, 13, + 13, 13, 13}) -- Finial ResetTransform() -Translate(10, 5, 3) -Scale(32) -MakeTilemap({ +Translate(10, 5, -0.00001) +DrawTilemap({ width = 3, - tiles = { - 18, 18, 18 - } -}) + 18, 18, 18}) -- Cheaty invisible platform +-- This draws nothing but creates a platform on the roof for walking. ResetTransform() -Translate(10, 4, 3) -Scale(32) -MakeTilemap({ +Rotate(X, 90) +Translate(10, 5, 0) +DrawTilemap({ width = 3, - surface_type = TOP, - tiles = { - -1, -1, -1 - } -}) + surface = TOP, + -1, -1, -1}) -- The ground -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -262,43 +218,36 @@ MakeTilemap({ ResetTransform() Rotate(X, 90) -Translate(-3, 0, 0) -Scale(32) +Translate(-3, 0, -3) SetTexture("Scenery") -MakeTilemap({ +DrawTilemap({ width = 13, - surface_type = TOP, - tiles = { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, - -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, - -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, - -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, - -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } -}) + surface = TOP, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, + -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, + -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, + -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, + -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) -- Front grass -if detail > 2 then +if detail > MEDIUM then ResetTransform() Scale(8, 1, 1) - Translate(1, -0.5, 5) - Scale(32) - MakeBillboard({ - tile = 2, - u_scale = 8 - }) + Translate(1, -0.5, 2) + DrawTile({ + 2, + u_scale = 8}) -- Back grass ResetTransform() Scale(8, 1, 1) - Translate(1, -0.5, 1) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(1, -0.5, -2) + DrawTile({ + 2, u_scale = 8 }) @@ -307,10 +256,9 @@ if detail > 2 then ResetTransform() Scale(4, 1, 1) Rotate(Y, -90) - Translate(1, -0.5, 1) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(1, -0.5, -2) + DrawTile({ + 2, u_scale = 4 }) @@ -319,10 +267,9 @@ if detail > 2 then ResetTransform() Scale(4, 1, 1) Rotate(Y, -90) - Translate(9, -0.5, 1) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(9, -0.5, -2) + DrawTile({ + 2, u_scale = 4 }) @@ -330,10 +277,9 @@ if detail > 2 then ResetTransform() Scale(11, 1, 1) - Translate(7, 0, 0) - Scale(32) - MakeBillboard({ - tile = 4, + Translate(7, 0, -3) + DrawTile({ + 4, u_scale = 11 }) end @@ -343,54 +289,42 @@ end -- Front wall -if detail > 1 then +if detail > LOW then ResetTransform() - Translate(19, 0, 0) - Scale(32) + Translate(19, 0, -3) SetTexture("Building") - MakeTilemap({ + DrawTilemap({ width = 4, - tiles = { - -1, 9, 11, -1, - 9, 10, 12, 11, - 15, 7, 7, 16, - 3, 6, 5, 4, - 3, 5, 6, 4, - 3, 8, 5, 4 - } - }) + -1, 9, 11, -1, + 9, 10, 12, 11, + 15, 7, 7, 16, + 3, 6, 5, 4, + 3, 5, 6, 4, + 3, 8, 5, 4}) -- Left wall ResetTransform() Rotate(Y, -90) - Translate(19, 0, -3) - Scale(32) - MakeTilemap({ + Translate(19, 0, -6) + DrawTilemap({ width = 3, - tiles = { - 15, 1, 16, - 3, 7, 4, - 3, 5, 4, - 3, 0, 4 - } - }) + 15, 1, 16, + 3, 7, 4, + 3, 5, 4, + 3, 0, 4}) -- Right wall ResetTransform() Rotate(Y, -90) - Translate(23, 0, -3) - Scale(32) - MakeTilemap({ + Translate(23, 0, -6) + DrawTilemap({ width = 3, - tiles = { - 15, 0, 16, - 3, 7, 4, - 3, 6, 4, - 3, 2, 4 - } - }) + 15, 0, 16, + 3, 7, 4, + 3, 6, 4, + 3, 2, 4}) -- Left pitched roof @@ -398,15 +332,11 @@ if detail > 1 then Rotate(X, 135) Scale(1, 1.5, 1.5) Rotate(Y, -90) - Translate(21, 6, -3) - Scale(32) - MakeTilemap({ + Translate(21, 6, -6) + DrawTilemap({ width = 3, - tiles = { - 13, 13, 13, - 13, 13, 13 - } - }) + 13, 13, 13, + 13, 13, 13}) -- Right pitched roof @@ -414,28 +344,20 @@ if detail > 1 then Rotate(X, -135) Scale(1, 1.5, 1.5) Rotate(Y, -90) - Translate(21, 6, -3) - Scale(32) - MakeTilemap({ + Translate(21, 6, -6) + DrawTilemap({ width = 3, - tiles = { - 13, 13, 13, - 13, 13, 13 - } - }) + 13, 13, 13, + 13, 13, 13}) -- Finial ResetTransform() Rotate(Y, -90) - Translate(21, 6, -3) - Scale(32) - MakeTilemap({ + Translate(21, 6, -6) + DrawTilemap({ width = 3, - tiles = { - 18, 18, 18 - } - }) + 18, 18, 18}) end -- More ground to the right @@ -445,52 +367,43 @@ end ResetTransform() Rotate(X, 90) -Translate(10, 0, 0) -Scale(32) +Translate(10, 0, -3) SetTexture("Scenery") -MakeTilemap({ +DrawTilemap({ width = 3, - surface_type = TOP, - tiles = { - 1, 1, 1, - 1, 1, 1, - -1, -1, -1, - -1, -1, -1, - -1, -1, -1, - -1, -1, -1, - 1, 1, 1 - } -}) + surface = TOP, + 1, 1, 1, + 1, 1, 1, + -1, -1, -1, + -1, -1, -1, + -1, -1, -1, + -1, -1, -1, + 1, 1, 1}) -- Left part of center courtyard ResetTransform() Rotate(X, 90) -Translate(13, 0, 0) -Scale(32) -MakeTilemap({ +Translate(13, 0, -3) +DrawTilemap({ width = 8, - surface_type = TOP, - tiles = { - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 1, 1, - 0, 0, 0, 0, 0, 0, 1, 1, - 1, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 0, 0, 0 - } -}) + surface = TOP, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 0, 0, 1, 1, + 1, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 0, 0, 0}) -- Front grass -if detail > 2 then +if detail > MEDIUM then ResetTransform() Scale(12, 1, 1) - Translate(14, -0.5, 5) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(14, -0.5, 2) + DrawTile({ + 2, u_scale = 12 }) @@ -498,30 +411,27 @@ if detail > 2 then ResetTransform() Scale(4, 1, 1) - Translate(14, -0.5, 1) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(14, -0.5, -2) + DrawTile({ + 2, u_scale = 4 }) -- Front grass next to door ResetTransform() - Translate(13, -0.5, 3) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(13, -0.5, 0) + DrawTile({ + 2, u_scale = 1 }) -- Back grass next to door ResetTransform() - Translate(13, -0.5, 2) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(13, -0.5, -1) + DrawTile({ + 2, u_scale = 1 }) @@ -529,23 +439,18 @@ if detail > 2 then ResetTransform() Rotate(Y, -90) - Translate(14, -0.5, 1) - Scale(32) - MakeTilemap({ + Translate(14, -0.5, -2) + DrawTilemap({ width = 4, - tiles = { - 2, -1, 2, 2 - } - }) + 2, -1, 2, 2}) -- Grass left of house ResetTransform() Rotate(Y, -90) - Translate(18, -0.5, 0) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(18, -0.5, -3) + DrawTile({ + 2, u_scale = 1 }) @@ -553,10 +458,9 @@ if detail > 2 then ResetTransform() Rotate(Y, -90) - Translate(24, -0.5, 0) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(24, -0.5, -3) + DrawTile({ + 2, u_scale = 1 }) @@ -564,10 +468,9 @@ if detail > 2 then ResetTransform() Scale(4, 1, 1) - Translate(19, -0.5, 4) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(19, -0.5, 1) + DrawTile({ + 2, u_scale = 4 }) @@ -575,10 +478,9 @@ if detail > 2 then ResetTransform() Scale(4, 1, 1) - Translate(19, -0.5, 2) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(19, -0.5, -1) + DrawTile({ + 2, u_scale = 4 }) @@ -587,10 +489,9 @@ if detail > 2 then ResetTransform() Scale(2, 1, 1) Rotate(Y, -90) - Translate(19, -0.5, 2) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(19, -0.5, -1) + DrawTile({ + 2, u_scale = 2 }) @@ -599,10 +500,9 @@ if detail > 2 then ResetTransform() Scale(2, 1, 1) Rotate(Y, -90) - Translate(23, -0.5, 2) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(23, -0.5, -1) + DrawTile({ + 2, u_scale = 2 }) end @@ -611,31 +511,26 @@ end ResetTransform() Rotate(X, 90) -Translate(21, 0, 0) -Scale(32) -MakeTilemap({ +Translate(21, 0, -3) +DrawTilemap({ width = 7, - surface_type = TOP, - tiles = { - 1, 1, 1, 1, 1, 0, 0, - 1, 1, 1, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 1, 1 - } -}) + surface = TOP, + 1, 1, 1, 1, 1, 0, 0, + 1, 1, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 1, 1, 0, 0, 0, 0, 0, + 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 1}) -- Fence to right of back house -if detail > 2 then +if detail > MEDIUM then ResetTransform() Scale(4, 1, 1) - Translate(24, 0, 0) - Scale(32) - MakeBillboard({ - tile = 4, + Translate(24, 0, -3) + DrawTile({ + 4, u_scale = 4 }) @@ -643,10 +538,9 @@ if detail > 2 then ResetTransform() Scale(4, 1, 1) - Translate(24, -0.5, 1) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(24, -0.5, -2) + DrawTile({ + 2, u_scale = 4 }) @@ -655,10 +549,9 @@ if detail > 2 then ResetTransform() Scale(2, 1, 1) Rotate(Y, -90) - Translate(26, -0.5, 5) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(26, -0.5, 2) + DrawTile({ + 2, u_scale = 2 }) @@ -667,10 +560,9 @@ if detail > 2 then ResetTransform() Scale(2, 1, 1) Rotate(Y, -90) - Translate(35, -0.5, 5) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(35, -0.5, 2) + DrawTile({ + 2, u_scale = 2 }) @@ -678,10 +570,9 @@ if detail > 2 then ResetTransform() Scale(5, 1, 1) - Translate(35, -0.5, 5) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(35, -0.5, 2) + DrawTile({ + 2, u_scale = 5 }) @@ -689,10 +580,9 @@ if detail > 2 then ResetTransform() Scale(6, 1, 1) - Translate(34, -0.5, 1) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(34, -0.5, -2) + DrawTile({ + 2, u_scale = 6 }) @@ -700,10 +590,9 @@ if detail > 2 then ResetTransform() Rotate(Y, -90) - Translate(34, -0.5, 0) - Scale(32) - MakeBillboard({ - tile = 2, + Translate(34, -0.5, -3) + DrawTile({ + 2, u_scale = 1 }) end @@ -712,37 +601,29 @@ end ResetTransform() Rotate(X, 90) -Translate(28, 0, 4) -Scale(32) -MakeTilemap({ +Translate(28, 0, 1) +DrawTilemap({ width = 5, - surface_type = TOP, - tiles = { - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0 - } -}) + surface = TOP, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0}) -- Rightmost ground ResetTransform() Rotate(X, 90) -Translate(33, 0, 0) -Scale(32) -MakeTilemap({ +Translate(33, 0, -3) +DrawTilemap({ width = 10, - surface_type = TOP, - tiles = { - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, - 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, - 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, - 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, - 0, 1, 1, 1, 1, 1, 1, -1, -1, -1 - } -}) + surface = TOP, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, + 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, + 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, + 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, + 0, 1, 1, 1, 1, 1, 1, -1, -1, -1}) -- Right foreground tower block -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -750,80 +631,64 @@ MakeTilemap({ -- Front ResetTransform() -Translate(28, 0, 4) -Scale(32) +Translate(28, 0, 1) SetTexture("TowerBlock1") -MakeTilemap({ +DrawTilemap({ width = 5, - tiles = { - 2, 2, 2, 2, 2, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 6, 0, - 4, 4, 4, 4, 4 - } -}) + 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 6, 0, + 4, 4, 4, 4, 4}) -- Right side ResetTransform() Rotate(Y, 90) -Translate(33, 0, 4) -Scale(32) -MakeTilemap({ +Translate(33, 0, 1) +DrawTilemap({ width = 6, - surface_type = RIGHT, - tiles = { - 2, 2, 2, 2, 2, 2, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 5, 4, 5, 5, 4, 5 - } -}) + surface = RIGHT, + 2, 2, 2, 2, 2, 2, + 0, 1, 0, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 5, 4, 5, 5, 4, 5}) -- Left side ResetTransform() Rotate(Y, 90) -Translate(28, 0, 4) -Scale(32) -MakeTilemap({ +Translate(28, 0, 1) +DrawTilemap({ width = 6, - surface_type = LEFT, - tiles = { - 2, 2, 2, 2, 2, 2, - 0, 1, 6, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 5, 4, 5, 5, 4, 5 - } -}) + surface = LEFT, + 2, 2, 2, 2, 2, 2, + 0, 1, 6, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 0, 1, 0, 0, 1, 0, + 5, 4, 5, 5, 4, 5}) -- Top ResetTransform() Rotate(X, 90) -Translate(28, 7, -2) -Scale(32) -MakeTilemap({ +Translate(28, 7, -5) +DrawTilemap({ width = 5, - surface_type = TOP, - tiles = { - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3 - } -}) + surface = TOP, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3}) -- Right end tower block -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -831,88 +696,76 @@ MakeTilemap({ -- Front ResetTransform() -Translate(40, 0, 5) -Scale(32) -MakeTilemap({ +Translate(40, 0, 2) +DrawTilemap({ width = 5, - tiles = { - 2, 2, 2, 2, 2, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 6, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 6, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 4, 4, 4, 4, 4 - } -}) + 2, 2, 2, 2, 2, + 0, 1, 0, 0, 1, + 0, 1, 0, 0, 1, + 0, 1, 0, 0, 1, + 0, 1, 0, 0, 1, + 6, 1, 0, 0, 1, + 0, 1, 0, 0, 1, + 0, 1, 0, 0, 1, + 0, 1, 0, 0, 1, + 0, 1, 0, 0, 1, + 0, 1, 0, 0, 1, + 6, 1, 0, 0, 1, + 0, 1, 0, 0, 1, + 0, 1, 0, 0, 1, + 4, 4, 4, 4, 4}) -- Left side ResetTransform() Rotate(Y, 90) -Translate(40, 0, 5) -Scale(32) -MakeTilemap({ +Translate(40, 0, 2) +DrawTilemap({ width = 5, - surface_type = LEFT, - tiles = { - 2, 2, 2, 2, 2, - 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 6, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 4, 5, 5, 5, 4 - } -}) + surface = LEFT, + 2, 2, 2, 2, 2, + 6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 6, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 4, 5, 5, 5, 4}) -- Top ResetTransform() Rotate(X, 90) -Translate(40, 15, 0) -Scale(32) -MakeTilemap({ +Translate(40, 15, -3) +DrawTilemap({ width = 5, - surface_type = TOP, - tiles = { - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3 - } -}) + surface = TOP, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3}) -- Background -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ResetTransform() -Translate(-0.3, -0.17, -900) -Scale(3200, 1600, 1) +Translate(-0.3, -0.3, -35) +Scale(105, 52, 1) SetTexture("BackgroundFar") -MakeBillboard() +DrawTile() -Translate(0, 0, 300) +Translate(0, 0, 5) SetTexture("BackgroundNear") -MakeBillboard({ - blend = detail > 1 and true or false +DrawTile({ + blend = detail > LOW and true or false }) -- Trees @@ -922,53 +775,127 @@ SetTexture("Trees") -- Left courtyard -if detail > 1 then +if detail > LOW then ResetTransform() - Scale(96) - Translate(250, -2.5, 16) - MakeBillboard({ - tile = 1 - }) + Scale(3) + Translate(7.75, -0.1, -2.5) + DrawTile(1) end -- Center courtyard ResetTransform() -Scale(96) -Translate(610, -2.5, 85) -MakeBillboard({ - tile = 0 -}) +Scale(3) +Translate(19, -0.1, -0.5) +DrawTile(0) ResetTransform() -Scale(96) -Translate(650, -2.5, 115) -MakeBillboard({ - tile = 1 -}) +Scale(3) +Translate(20.25, -0.1, 0.5) +DrawTile(1) -- Right courtyard -if detail > 1 then +if detail > LOW then ResetTransform() - Scale(96) - Translate(1080, -2.5, 10) - MakeBillboard({ - tile = 1 - }) + Scale(3) + Translate(34, -0.1, -2.75) + DrawTile(1) ResetTransform() - Scale(96) - Translate(1120, -2.5, -15) - MakeBillboard({ - tile = 0 - }) + Scale(3) + Translate(36, -0.1, -3.5) + DrawTile(0) ResetTransform() - Scale(96) - Translate(1220, -2.5, -30) - MakeBillboard({ - tile = 1 - }) + Scale(3) + Translate(37, -0.1, -2.25) + DrawTile(1) +end + + + +-- Functions: +-- DisplayText(text, seconds) +-- Yield(seconds) +-- SpawnItem(what, coords, timeout) +-- SpawnRandomItem(coords, timeout) +-- SpawnCharacter(what, coords, ai level) +-- SpawnHeroine(coords) +-- PlaySound(name) +-- PlayMusic(name) +-- BeginNewWave() + +-- Events: +-- Think() is called periodically +-- BadGuyDied(enemy) +-- HeroineDied(player) + +-- Globals: +-- numberOfBadGuys + + +--do + --SpawnHeroine({5, 5}) + --local waveNum = BeginNewWave() + --PopulateScene(waveNum) +--end + + +-- Events +--------- + +Event = {} + +function Event:Think() +end + +function Event:BadGuyDied(enemy) + if numberOfBadGuys == 0 then + local waveNum = BeginNewWave() + PopulateScene(waveNum) + end + if math.random() <= 0.2 then + SpawnRandomItem(enemy.position) + end +end + + +-- Helper functions +------------------- + +function PopulateScene(waveNum) + -- spawn some robot troopers + local numBadGuys = math.random(3, 2 * waveNum) + for i = 0, numBadGuys do + SpawnCharacter("RobotTrooper", RandomSpawnPlace(), RandomSkillLevel()) + end + + -- spawn some alien warriors + if waveNum >= 10 then + numBadGuys = math.random(3, 2 * waveNum) + for i = 0, numBadGuys do + SpawnCharacter("AlienWarrior", RandomSpawnPlace(), RandomSkillLevel()) + end + end + + -- spawn some jetbots + if waveNum >= 20 then + numBadGuys = math.random(3, 2 * waveNum) + for i = 0, numBadGuys do + SpawnCharacter("Jetbot", RandomSpawnPlace(), RandomSkillLevel()) + end + end end +function RandomSpawnPlace() + return {5, 5} +end + +function RandomSkillLevel() + return "dumb" +end + + +-- vim: ts=4 sw=4 tw=80 +