First post here in a while, some of the older members might recall a project I was working on for sphere builders to aid in house construction. Recently I made some serious upgrades to it and wanted to come update it here. Unfortunately, it doesn't look like I ever released it publicly (sorry about that). But for those of you that like building/using sphere, I present Architect v1.4
With the current version, I built 8 houses of various sizes in less than 10 minutes.
Create a "I_ARCHITECT" and place it in your pack. Then double click it, fill out the important info (height, width, stories, and the ID's for the items you want used for your walls/floors/roof)
*EDIT: Too long for one post, reposted as two*
Code:
// Architect 1.4
// Copyright 2004 Travis George
// Written by Xelah
// Project Start Date: 2-25-04
// Project Complete Date: 3-15-04
// Last Revision Completed: 5-22-05
[ITEMDEF I_ARCHITECT]
ID=I_TOOLCASE
NAME=Xelah's Architect 1.4
TYPE=T_EQ_SCRIPT
ON=@DCLICK
IF <SRC.ISGM>
SRC.DIALOG D_ARCHITECT 1
RETURN 0
ELSE
SRC.MESSAGE You must have GM privildges to use this item.
RETURN 0
[ITEMDEF I_ARCHITECT2]
ID=I_RUNE_POISON
NAME=Architect 1.4
TYPE=T_EQ_SCRIPT
ON=@TIMER
IF <MOREY>=1
LINK.SAY Constructing Walls...
//SOUTHEAST CORNER
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.SE_CORNER>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//SOUTHWEST CORNER
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.SW_CORNER>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE W <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//NORTHEAST CORNER
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.NE_CORNER>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE N <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//NORTHWEST CORNER
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.NW_CORNER>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE W <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>
LINK.ACT.MOVE N <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//Additional Corner Items
//SOUTHWEST CORNER 2
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.SW_CORNER2>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE W <EVAL <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>+-1>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//NORTHEAST CORNER 2
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.NE_CORNER2>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE N <EVAL <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>+-1>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//NORTHWEST CORNER 2
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.NW_CORNER2>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE W <EVAL <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>+-1>
LINK.ACT.MOVE N <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//NORTHWEST CORNER 3
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.NW_CORNER3>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE W <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>
LINK.ACT.MOVE N <EVAL <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>+-1>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
MOREY=2
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=2
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTX>+-(<LINK.FINDID.I_ARCHITECT.TAG.ENDX>+2))>
//NORTH AND SOUTH WALLS
//IF <LINK.FINDID.I_ARCHITECT.TAG.CURRENTX>><EVAL <LINK.FINDID.I_ARCHITECT.TAG.ENDX>+2>
//SOUTH WALL
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.EW_WALL>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.MOVE W 1
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
//NORTH WALL
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.EW_WALL>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.MOVE N <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>
//ADJUST X,Y,Z
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
//TIMERD=0.1
//RETURN 1
//ELSE
ENDFOR
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
MOREY=3
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=3
//EAST AND WEST WALLS
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTY>+-(<EVAL <LINK.FINDID.I_ARCHITECT.TAG.ENDY>+2))>
//IF <LINK.FINDID.I_ARCHITECT.TAG.CURRENTY>><EVAL <LINK.FINDID.I_ARCHITECT.TAG.ENDY>+2>
//EAST WALL
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.NS_WALL>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.MOVE N 1
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
//WEST WALL
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.NS_WALL>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.MOVE W <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>
//ADJUST X,Y,Z
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
//TIMERD=0.1
//RETURN 1
//ELSE
ENDFOR
LINK.SAY Done.
MOREY=4
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=4
LINK.SAY Constructing Floors...
//SOUTHEAST CORNER
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.SE_CORNER_FLOOR>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//SOUTHWEST CORNER
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.SW_CORNER_FLOOR>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE W <EVAL <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>+-1>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//NORTHEAST CORNER
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.NE_CORNER_FLOOR>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE N <EVAL <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>+-1>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//NORTHWEST CORNER
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.NW_CORNER_FLOOR>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE W <EVAL <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>+-1>
LINK.ACT.MOVE N <EVAL <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>+-1>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
MOREY=5
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=5
//NORTH AND SOUTH EXTREMITIES
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTX>+-(<LINK.FINDID.I_ARCHITECT.TAG.ENDX>+2))
//SOUTH WALL
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.S_FLOOR>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.MOVE W 1
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
//NORTH WALL
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.N_FLOOR>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.MOVE N <EVAL <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>+-1>
//ADJUST X,Y,Z
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
ENDFOR
MOREY=6
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=6
//EAST AND WEST EXTREMITIES
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTY>+-(<EVAL <LINK.FINDID.I_ARCHITECT.TAG.ENDY>+2))>
//EAST WALL
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.E_FLOOR>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.MOVE N 1
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
//WEST WALL
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.W_FLOOR>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.MOVE W <EVAL <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>+-1>
//ADJUST X,Y,Z
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
ENDFOR
LINK.NEWITEM I_MEMORY
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
//LINK.ACT.MOVE N 1
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP=<LINK.ACT.P>
LINK.ACT.REMOVE
LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE=1
MOREY=7
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=7
//FLOOR TILES
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTX>+-(<LINK.FINDID.I_ARCHITECT.TAG.ENDX>+2))
//LAY DOWN THE TILES
DORAND 4
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.FLOOR_1>
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.FLOOR_2>
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.FLOOR_3>
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.FLOOR_4>
ENDDO
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.MOVE W 1
IF <LINK.FINDID.I_ARCHITECT.TAG.FIRST>=1
LINK.ACT.MOVE N <LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE>
LINK.FINDID.I_ARCHITECT.TAG.FIRST=0
ENDIF
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
ENDFOR
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
IF <LINK.FINDID.I_ARCHITECT.TAG.CURRENTY>><EVAL <LINK.FINDID.I_ARCHITECT.TAG.ENDY>+2>
LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE>+1>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
TIMERD=0.1
RETURN 1
ELSE
LINK.SAY Done.
MOREY=8
TIMERD=0.1
RETURN 1
ENDIF
ENDIF
IF <MOREY>=8
LINK.SAY Checking for additional floors...
IF <LINK.FINDID.I_ARCHITECT.TAG.STORIES2BUILD>>1
LINK.Z=<EVAL <LINK.Z>+20>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.P>
LINK.FINDID.I_ARCHITECT.TAG.STARTP=<LINK.ACT.MOREP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.MOREP>
LINK.FINDID.I_ARCHITECT.TAG.STARTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.STARTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.STARTZ=<LINK.Z>
LINK.FINDID.I_ARCHITECT.TAG.ROOFZ=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>+20>
LINK.ACT.REMOVE
LINK.FINDID.I_ARCHITECT.TAG.STORIES2BUILD=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.STORIES2BUILD>+-1>
LINK.SAY Done.
MOREY=1
TIMERD=0.1
RETURN 1
ELSE
LINK.SAY Done.
MOREY=9
TIMERD=0.1
RETURN 1
ENDIF
ENDIF
IF <MOREY>=9
LINK.SAY Constructing roof...
IF <LINK.FINDID.I_ARCHITECT.TAG.ROOFTYPE>=1
MOREY=20
TIMERD=0.1
RETURN 1
ELSEIF <LINK.FINDID.I_ARCHITECT.TAG.ROOFTYPE>=2
MOREY=50
TIMERD=0.1
RETURN 1
ELSE
MOREY=30
TIMERD=0.1
RETURN 1
ENDIF
ENDIF
IF <MOREY>=20
//SOUTHEAST CORNER
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.SE_CORNER_ROOF>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//SOUTHWEST CORNER
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.SW_CORNER_ROOF>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE W <EVAL <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>+-1>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//NORTHEAST CORNER
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.NE_CORNER_ROOF>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE N <EVAL <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>+-1>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
//NORTHWEST CORNER
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.NW_CORNER_ROOF>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE W <EVAL <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>+-1>
LINK.ACT.MOVE N <EVAL <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>+-1>
LINK.ACT.ATTR=010
LINK.ACT.TIMER=-1
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.FINDID.I_ARCHITECT.TAG.STARTX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.FINDID.I_ARCHITECT.TAG.STARTY>
MOREY=21
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=21
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.SAY <LINK.FINDID.I_ARCHITECT.TAG.STARTP> (START)
//NORTH AND SOUTH EXTREMITIES
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTX>+-(<LINK.FINDID.I_ARCHITECT.TAG.ENDX>+2))>
//SOUTH WALL
//LINK.SAY <LINK.FINDID.I_ARCHITECT.TAG.CURRENTP> (373)
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.S_ROOF>
LINK.SAY <LINK.FINDID.I_ARCHITECT.TAG.S_ROOF> (name)
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE W 1
//LINK.SAY <LINK.FINDID.I_ARCHITECT.TAG.CURRENTP> (378)
//LINK.SAY <LINK.ACT.P> (ACT)
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
//LINK.SAY <LINK.FINDID.I_ARCHITECT.TAG.CURRENTP> (380)
//NORTH WALL
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.N_ROOF>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.SAY <EVAL <LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE N <EVAL <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>+-1>
//ADJUST X,Y,Z
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
ENDFOR
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
MOREY=22
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=22
//EAST AND WEST EXTREMITIES
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTY>+-(<EVAL <LINK.FINDID.I_ARCHITECT.TAG.ENDY>+2))>
//EAST WALL
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.E_ROOF>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE N 1
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
//WEST WALL
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.W_ROOF>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE W <EVAL <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>+-1>
//ADJUST X,Y,Z
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
ENDFOR
LINK.NEWITEM I_MEMORY
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE N 1
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP=<LINK.ACT.P>
LINK.ACT.REMOVE
LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE=0
MOREY=23
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=23
//ROOF TILES
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTX>+-(<LINK.FINDID.I_ARCHITECT.TAG.ENDX>+2))>
//LAY DOWN THE TILES
DORAND 4
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.ROOF_1>
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.ROOF_2>
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.ROOF_3>
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.ROOF_4>
ENDDO
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE W 1
IF <LINK.FINDID.I_ARCHITECT.TAG.FIRST>=1
LINK.ACT.MOVE N <LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE>
LINK.FINDID.I_ARCHITECT.TAG.FIRST=0
ENDIF
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
ENDFOR
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
IF <LINK.FINDID.I_ARCHITECT.TAG.CURRENTY>><EVAL <LINK.FINDID.I_ARCHITECT.TAG.ENDY>+2>
LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE>+1>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
TIMERD=0.1
RETURN 1
ELSE
LINK.SAY Done.
LINK.SAY Your structure is complete. Thank you for using Architect 1.4!
REMOVE
RETURN 1
ENDIF
ENDIF
IF <MOREY>=50
LINK.NEWITEM I_MEMORY
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE S 2
LINK.ACT.MOVE E 2
LINK.ACT.MOREP=<LINK.ACT.P>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
LINK.FINDID.I_ARCHITECT.TAG.STARTP=<LINK.ACT.MOREP>
LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP=<LINK.ACT.MOREP>
LINK.ACT.REMOVE
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREY=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>/2>
LINK.FINDID.I_ARCHITECT.TAG.FRONTHALF=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>/2>
LINK.FINDID.I_ARCHITECT.TAG.HALF=<LINK.ACT.MOREY>
LINK.ACT.REMOVE
IF <EVAL <LINK.FINDID.I_ARCHITECT.TAG.HALF>+<LINK.FINDID.I_ARCHITECT.TAG.HALF>>=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.LENGTH>>
LINK.FINDID.I_ARCHITECT.TAG.FAR=1
LINK.FINDID.I_ARCHITECT.TAG.NEAR=0
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
LINK.FINDID.I_ARCHITECT.TAG.HALF=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.HALF>+1>
ELSE
LINK.FINDID.I_ARCHITECT.TAG.FAR=0
LINK.FINDID.I_ARCHITECT.TAG.NEAR=1
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
ENDIF
LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE=1
LINK.FINDID.I_ARCHITECT.TAG.LOOPS=0
MOREY=51
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=51
//ROOF TILES
IF <EVAL <LINK.FINDID.I_ARCHITECT.TAG.LOOPS>>=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.FRONTHALF>+<LINK.FINDID.I_ARCHITECT.TAG.NEAR>>
LINK.FINDID.I_ARCHITECT.TAG.LOOPS=0
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
MOREY=52
TIMERD=0.1
RETURN 1
ENDIF
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTX>+-(<LINK.FINDID.I_ARCHITECT.TAG.ENDX>+1))>
//LAY DOWN THE TILES
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.ROOF_1a>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE W 1
IF <LINK.FINDID.I_ARCHITECT.TAG.FIRST>=1
LINK.ACT.MOVE N <LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE>
LINK.FINDID.I_ARCHITECT.TAG.FIRST=0
ENDIF
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
ENDFOR
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
IF <LINK.FINDID.I_ARCHITECT.TAG.CURRENTY>><EVAL <LINK.FINDID.I_ARCHITECT.TAG.ENDY>>
LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE>+1>
LINK.FINDID.I_ARCHITECT.TAG.ROOFZ=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>+3>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
LINK.FINDID.I_ARCHITECT.TAG.LOOPS=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.LOOPS>+1>
TIMERD=0.1
RETURN 1
ELSE
LINK.SAY Done.
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
RETURN 1
ENDIF
ENDIF
IF <MOREY>=52
//CENTER ROOF TILES
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTX>+-(<LINK.FINDID.I_ARCHITECT.TAG.ENDX>+1))>
//LAY DOWN THE TILES
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.ROOF_2a>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE W 1
IF <LINK.FINDID.I_ARCHITECT.TAG.FIRST>=1
LINK.ACT.MOVE N <LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE>
LINK.FINDID.I_ARCHITECT.TAG.FIRST=0
ENDIF
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
ENDFOR
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE>+1>
LINK.FINDID.I_ARCHITECT.TAG.ROOFZ=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>+-3>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
MOREY=53
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=53
//ROOF TILES
IF <EVAL <LINK.FINDID.I_ARCHITECT.TAG.LOOPS>>=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.HALF>+-<LINK.FINDID.I_ARCHITECT.TAG.FAR>>
LINK.FINDID.I_ARCHITECT.TAG.LOOPS=0
LINK.SAY Done.
LINK.SAY Your structure is complete. Thank you for using Architect 1.4!
REMOVE
RETURN 1
ENDIF
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTX>+-(<LINK.FINDID.I_ARCHITECT.TAG.ENDX>+1))>
//LAY DOWN THE TILES
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.ROOF_3a>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE W 1
IF <LINK.FINDID.I_ARCHITECT.TAG.FIRST>=1
LINK.ACT.MOVE N <LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE>
LINK.FINDID.I_ARCHITECT.TAG.FIRST=0
ENDIF
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
ENDFOR
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
IF <LINK.FINDID.I_ARCHITECT.TAG.CURRENTY>><EVAL <LINK.FINDID.I_ARCHITECT.TAG.ENDY>+-<LINK.FINDID.I_ARCHITECT.TAG.EVEN>>
LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.N_BUDGE>+1>
LINK.FINDID.I_ARCHITECT.TAG.ROOFZ=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>+-3>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
LINK.FINDID.I_ARCHITECT.TAG.LOOPS=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.LOOPS>+1>
TIMERD=0.1
RETURN 1
ELSE
LINK.SAY Done.
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
RETURN 1
ENDIF
ENDIF
IF <MOREY>=30
LINK.NEWITEM I_MEMORY
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
LINK.ACT.MOVE S 2
LINK.ACT.MOVE E 2
LINK.ACT.MOREP=<LINK.ACT.P>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
LINK.FINDID.I_ARCHITECT.TAG.STARTP=<LINK.ACT.MOREP>
LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP=<LINK.ACT.MOREP>
LINK.ACT.REMOVE
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREY=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>/2>
LINK.FINDID.I_ARCHITECT.TAG.FRONTHALF=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>/2>
LINK.FINDID.I_ARCHITECT.TAG.HALF=<LINK.ACT.MOREY>
LINK.ACT.REMOVE
IF <EVAL <LINK.FINDID.I_ARCHITECT.TAG.HALF>+<LINK.FINDID.I_ARCHITECT.TAG.HALF>>=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.WIDTH>>
LINK.FINDID.I_ARCHITECT.TAG.FAR=1
LINK.FINDID.I_ARCHITECT.TAG.NEAR=0
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
LINK.FINDID.I_ARCHITECT.TAG.HALF=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.HALF>+1>
ELSE
LINK.FINDID.I_ARCHITECT.TAG.FAR=0
LINK.FINDID.I_ARCHITECT.TAG.NEAR=1
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
ENDIF
LINK.FINDID.I_ARCHITECT.TAG.W_BUDGE=1
LINK.FINDID.I_ARCHITECT.TAG.LOOPS=0
MOREY=31
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=31
//ROOF TILES
IF <EVAL <LINK.FINDID.I_ARCHITECT.TAG.LOOPS>>=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.FRONTHALF>+<LINK.FINDID.I_ARCHITECT.TAG.NEAR>>
LINK.FINDID.I_ARCHITECT.TAG.LOOPS=0
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
MOREY=32
TIMERD=0.1
RETURN 1
ENDIF
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTY>+-(<LINK.FINDID.I_ARCHITECT.TAG.ENDY>+1))
//LAY DOWN THE TILES
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.ROOF_1a>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE N 1
IF <LINK.FINDID.I_ARCHITECT.TAG.FIRST>=1
LINK.ACT.MOVE W <LINK.FINDID.I_ARCHITECT.TAG.W_BUDGE>
LINK.FINDID.I_ARCHITECT.TAG.FIRST=0
ENDIF
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
ENDFOR
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
IF <LINK.FINDID.I_ARCHITECT.TAG.CURRENTX>><EVAL <LINK.FINDID.I_ARCHITECT.TAG.ENDX>>
LINK.FINDID.I_ARCHITECT.TAG.W_BUDGE=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.W_BUDGE>+1>
LINK.FINDID.I_ARCHITECT.TAG.ROOFZ=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>+3>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
LINK.FINDID.I_ARCHITECT.TAG.LOOPS=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.LOOPS>+1>
TIMERD=0.1
RETURN 1
ELSE
LINK.SAY Done.
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
RETURN 1
ENDIF
ENDIF
IF <MOREY>=32
//CENTER ROOF TILES
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTY>+-(<LINK.FINDID.I_ARCHITECT.TAG.ENDY>+1))>
//LAY DOWN THE TILES
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.ROOF_2a>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE N 1
IF <LINK.FINDID.I_ARCHITECT.TAG.FIRST>=1
LINK.ACT.MOVE W <LINK.FINDID.I_ARCHITECT.TAG.W_BUDGE>
LINK.FINDID.I_ARCHITECT.TAG.FIRST=0
ENDIF
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
ENDFOR
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
LINK.FINDID.I_ARCHITECT.TAG.W_BUDGE=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.W_BUDGE>+1>
LINK.FINDID.I_ARCHITECT.TAG.ROOFZ=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>+-3>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
MOREY=33
TIMERD=0.1
RETURN 1
ENDIF
IF <MOREY>=33
//ROOF TILES
IF <EVAL <LINK.FINDID.I_ARCHITECT.TAG.LOOPS>>=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.HALF>+-<LINK.FINDID.I_ARCHITECT.TAG.FAR>>
LINK.FINDID.I_ARCHITECT.TAG.LOOPS=0
LINK.SAY Done.
LINK.SAY Your structure is complete. Thank you for using Architect 1.4!
REMOVE
RETURN 1
ENDIF
FOR <EVAL (<LINK.FINDID.I_ARCHITECT.TAG.CURRENTY>+-(<LINK.FINDID.I_ARCHITECT.TAG.ENDY>+1))>
//LAY DOWN THE TILES
LINK.NEWITEM <LINK.FINDID.I_ARCHITECT.TAG.ROOF_3a>
LINK.ACT.P=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.ACT.Z=<LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>
LINK.ACT.MOVE N 1
IF <LINK.FINDID.I_ARCHITECT.TAG.FIRST>=1
LINK.ACT.MOVE W <LINK.FINDID.I_ARCHITECT.TAG.W_BUDGE>
LINK.FINDID.I_ARCHITECT.TAG.FIRST=0
ENDIF
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.ACT.P>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
ENDFOR
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
IF <LINK.FINDID.I_ARCHITECT.TAG.CURRENTX>><EVAL <LINK.FINDID.I_ARCHITECT.TAG.ENDX>+-<LINK.FINDID.I_ARCHITECT.TAG.EVEN>>
LINK.FINDID.I_ARCHITECT.TAG.W_BUDGE=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.W_BUDGE>+1>
LINK.FINDID.I_ARCHITECT.TAG.ROOFZ=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.ROOFZ>+-3>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.TILESTARTP>
LINK.NEWITEM I_MEMORY
LINK.ACT.MOREP=<LINK.FINDID.I_ARCHITECT.TAG.CURRENTP>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTX=<LINK.ACT.MOREX>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTY=<LINK.ACT.MOREY>
LINK.FINDID.I_ARCHITECT.TAG.CURRENTZ=<LINK.ACT.MOREZ>
LINK.ACT.REMOVE
LINK.FINDID.I_ARCHITECT.TAG.FIRST=1
LINK.FINDID.I_ARCHITECT.TAG.LOOPS=<EVAL <LINK.FINDID.I_ARCHITECT.TAG.LOOPS>+1>
TIMERD=0.1
RETURN 1
ELSE
LINK.SAY Done.
LINK.FINDID.I_ARCHITECT.TAG.CURRENTP=<LINK.FINDID.I_ARCHITECT.TAG.STARTP>
RETURN 1
ENDIF
ENDIF