All pastes #29006 Raw Edit

Engine Rough

public text v1 · immutable
#29006 ·published 2005-11-17 12:15 UTC
rendered paste body
View.Set ("graphics:max,max")
var verdana := Font.New ("verdana:10:bold")
include "classes.t"

var terrainTypes : array 1 .. 8 of int := init (42, 48, 2, 66, 15, 53, 55, 91)
var infantry : array 1 .. 100 of pointer to Infantry
var tank : array 1 .. 100 of pointer to Tank
var artillery : array 1 .. 100 of pointer to Artillery
var map : array 1 .. 100, 1 .. 100 of int
var unitToAdd, infCount, tankCount, artyCount : int := 1
var scrollx, scrolly, mx, my, mb : int
var mapLoadFlag : boolean := false
var tS : int := 50
scrollx := 0
scrolly := 0


% Initialize the Unit Classes -> Josh
for i : 1 .. 100
    new Infantry, infantry (i)
    new Tank, tank (i)
    new Artillery, artillery (i)
end for

proc drawMap     % -> Josh
    for i : 1 .. 40
        for j : 1 .. 40
            %drawfillbox (100 + i * tS, 100 + j * tS, 100 + i * tS + tS, 100 + j * tS + tS, terrainTypes (map (i, j)))
            drawfillbox (i * tS - 50 + (scrollx * tS), j * tS - 50 + (scrolly * tS), i * tS + tS - tS + (scrollx * tS)-5, j * tS + tS - tS + (scrolly * tS)-5, terrainTypes (map (i, j)))
            % SCALE DOWN FOR ROOM FOR THE INTERFACE
        end for
    end for
end drawMap

proc GUI
    drawfillbox (1000 - (scrollx * tS), 0, maxx, maxy, grey)
end GUI

function findSpaceInString (word : string) : int % -> Josh
    for i : 1 .. length (word)
        if word (i) = " " then
            result i
        end if
    end for
    result 0
end findSpaceInString


proc loadMap
    var filename : string := ""
    var input : int
    var Char : string (1)
    var character : string
    var temp, temp2, unitX, unitY, side : int := 0
    locate (1, 1)
    put "Enter a name: " ..
    get filename
    open : input, "maps\\" + filename + ".map", get

    if Error.Last = eNoError then
        for i : 1 .. 40
            for j : 1 .. 40
                get : input, Char
                if strintok (Char) = false and Char not= " " then
                    put "Data file corrupted! Tile (", i, ",", j, ") returned to Default Type"
                elsif strintok (Char) then
                    map (i, j) := strint (Char)
                end if
            end for
        end for
        drawMap

        loop
            exit when eof (input)
            get : input, character : *
            if length (character) > 6 then              % Evil little region of code, took me 20min!
                side := strint (character (2))
                temp := findSpaceInString (character)
                temp2 := temp + findSpaceInString (character (temp + 1 .. *))
                unitX := strint (character (temp + 1 .. temp2 - 1))
                unitY := strint (character (temp2 + 1 .. *))
            end if
            if character (1) = "i" then
                infantry (infCount) -> load (unitX, unitY, side)
                infCount += 1
            elsif character (1) = "t" then
                tank (tankCount) -> load (unitX, unitY, side)
                tankCount += 1
            elsif character (1) = "a" then
                artillery (artyCount) -> load (unitX, unitY, side)
                artyCount += 1
            end if
        end loop
        close : input
    else
        locate (1, 1)
        put "File not Found."
    end if
end loadMap


loop
    if mapLoadFlag = false then
        loadMap
        mapLoadFlag := true
    end if

    mousewhere (mx, my, mb)
    if mx >= maxx - tS and mb = 1 then
        if scrollx * -1 < 20 then
            scrollx -= 1
        end if
    elsif mx < 0 + tS and mb = 1 then
        if scrollx < 0 then
            scrollx += 1
        end if
    end if

    if my >= maxy - tS and mb = 1 then
        if scrolly * -1 < 24 then
            scrolly -= 1
        end if

    elsif my < 0 + tS and mb = 1 then
        if scrolly < 0 then
            scrolly += 1
        end if
    end if

    drawMap
    GUI
    View.Update
    %cls
    delay (10)
    locate (2, 1)
    put scrollx, "     ", scrolly ..
    locate (2, 1)
    put mx, "     ", my ..
end loop