#include "height.h" u_long CreateTileTMD(long h1, long h2, long h3, long h4) { static u_long firstStart=0; u_long returnValue; // set position of vertices TMD_setVERTEX(&tile[0].vert[0], -TILE_LENGTH, h1, TILE_WIDTH); TMD_setVERTEX(&tile[0].vert[1], TILE_LENGTH, h2, TILE_WIDTH); TMD_setVERTEX(&tile[0].vert[2], TILE_LENGTH, h3,-TILE_WIDTH); TMD_setVERTEX(&tile[0].vert[3], -TILE_LENGTH, h4,-TILE_WIDTH); // set colour to be used. TMD_setCOLOUR(&tile[0].col[0], 255,255,0); TMD_setCOLOUR(&tile[0].col[1], 255,0,0); TMD_setCOLOUR(&tile[0].col[2], 0,255,0); TMD_setCOLOUR(&tile[0].col[3], 0,255,255); if(firstStart == 0) { TMD_prepare(FREE_MEM, &tile[0].vert[0], &tile[0].col[0],0); firstStart = 1; } else { TMD_prepare(0, &tile[0].vert[0], &tile[0].col[0],0); } //create face TMD_set4_NS_GP(0,1,3,2,0,1,2,3); // finish returnValue = TMD_finish(); return(returnValue); } void CreateTileModels() { long index,x=0,z=0; for(index = 0; index < MAP_AREA; index++) { InitialiseModel(&tileModel[index],x*(TILE_LENGTH<<1),0, z*(TILE_WIDTH<<1),DYNAMIC_TMD[index]); if(index !=0)tileModel[index].Object_Coord.super = &tileModel[0].Object_Coord; if(++x >= MAP_LENGTH){ z++; x=0; } } } void SetupMap() { long index,x=0,z=0; SetHeights(); //create TMDs for(index=0; index < MAP_AREA; index++) { DYNAMIC_TMD[index] =(u_long*) CreateTileTMD(heightFields[x][z+1], heightFields[x+1][z+1], heightFields[x+1][z], heightFields[x][z]); if(++x >= MAP_LENGTH){ z++; x=0; } } // setup models CreateTileModels(); } void RotateMap(long x, long y, long z) { RotateModelMatrix(&tileModel[0].Object_Coord,x,y,z); } void DrawMap() { long index; // may need to roll out for more speed. for(index=0; index < MAP_AREA; index++) { DrawObject(&tileModel[index]); } } void SetHeights() { heightFields[0][0] = 0; heightFields[0][1] = 0; heightFields[0][2] = 0; heightFields[0][3] = -100; heightFields[0][4] = 0; heightFields[0][5] = 0; heightFields[0][6] = 0; heightFields[0][7] = 0; heightFields[0][8] = 0; heightFields[0][9] = 0; heightFields[1][0] = 0; heightFields[1][1] = 0; heightFields[1][2] = -100; heightFields[1][3] = 0; heightFields[1][4] = 0; heightFields[1][5] = 0; heightFields[1][6] = -100; heightFields[1][7] = 0; heightFields[1][8] = 0; heightFields[1][9] = 0; heightFields[2][0] = 0; heightFields[2][1] = 0; heightFields[2][2] = -100; heightFields[2][3] = 0; heightFields[2][4] = 0; heightFields[2][5] = 0; heightFields[2][6] = 0; heightFields[2][7] = 0; heightFields[2][8] = 0; heightFields[2][9] = 0; heightFields[3][0] = 0; heightFields[3][1] = 0; heightFields[3][2] = -100; heightFields[3][3] = 0; heightFields[3][4] = 0; heightFields[3][5] = 0; heightFields[3][6] = -100; heightFields[3][7] = 0; heightFields[3][8] = 0; heightFields[3][9] = 0; heightFields[4][0] = 0; heightFields[4][1] = 0; heightFields[4][2] = -100; heightFields[4][3] = 0; heightFields[4][4] = 0; heightFields[4][5] = 0; heightFields[4][6] = 0; heightFields[4][7] = 0; heightFields[4][8] = 0; heightFields[4][9] = 0; heightFields[5][0] = 0; heightFields[5][1] = 0; heightFields[5][2] = -100; heightFields[5][3] = 0; heightFields[5][4] = 0; heightFields[5][5] = 0; heightFields[5][6] = -100; heightFields[5][7] = 0; heightFields[5][8] = 0; heightFields[5][9] = 0; heightFields[6][0] = 0; heightFields[6][1] = 0; heightFields[6][2] = -100; heightFields[6][3] = 0; heightFields[6][4] = 0; heightFields[6][5] = 0; heightFields[6][6] = 0; heightFields[6][7] = 0; heightFields[6][8] = 0; heightFields[6][9] = 0; heightFields[7][0] = 0; heightFields[7][1] = 0; heightFields[7][2] = -100; heightFields[7][3] = 0; heightFields[7][4] = 0; heightFields[7][5] = 0; heightFields[7][6] = -100; heightFields[7][7] = 0; heightFields[7][8] = 0; heightFields[7][9] = 0; heightFields[8][0] = 0; heightFields[8][1] = 0; heightFields[8][2] = -100; heightFields[8][3] = 0; heightFields[8][4] = 0; heightFields[8][5] = 0; heightFields[8][6] = 0; heightFields[8][7] = 0; heightFields[8][8] = 0; heightFields[8][9] = 0; heightFields[9][0] = 0; heightFields[9][1] = 0; heightFields[9][2] = -100; heightFields[9][3] = 0; heightFields[9][4] = 0; heightFields[9][5] = 0; heightFields[9][6] = -100; heightFields[9][7] = 0; heightFields[9][8] = 0; heightFields[9][9] = 0; }