#include "Globals.h" HWND GameHandle; LPDIRECT3D9 g_pD3D = NULL; // Used to create the D3DDevice LPDIRECT3DDEVICE9 d3d_Device = NULL; // Our rendering device LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; // Buffer to hold vertices DWORD starttime1=GetTickCount(), endtime1; D3DXVECTOR3 g_Pos(0,20,180); D3DXMATRIX g_ViewMatrix; float g_SpeedForward = 0; float g_SpeedStrafe = 0; float g_Yaw = 0, g_Pitch = 0, g_Roll = 0; LPDIRECT3DTEXTURE9 pTexture = NULL; LPDIRECT3DTEXTURE9 *pTextures = NULL; // ---- Class Wall Member Functions ---- // Wall::Wall(float tl_x, float tl_y, float tl_z, DWORD tl_color, float tl_u, float tl_v, float tr_x, float tr_y, float tr_z, DWORD tr_color, float tr_u, float tr_v, float br_x, float br_y, float br_z, DWORD br_color, float br_u, float br_v, float bl_x, float bl_y, float bl_z, DWORD bl_color, float bl_u, float bl_v, int text) { m_Verts[0].point = D3DXVECTOR3(tl_x, tl_y, tl_z); m_Verts[1].point = D3DXVECTOR3(tr_x, tr_y, tr_z); m_Verts[2].point = D3DXVECTOR3(br_x, br_y, br_z); m_Verts[3].point = D3DXVECTOR3(bl_x, bl_y, bl_z); m_Verts[0].uv = D3DXVECTOR2(tl_u, tl_v); m_Verts[1].uv = D3DXVECTOR2(tr_u, tr_v); m_Verts[2].uv = D3DXVECTOR2(br_u, br_v); m_Verts[3].uv = D3DXVECTOR2(bl_u, bl_v); m_Verts[0].color = tl_color; m_Verts[1].color = tr_color; m_Verts[2].color = br_color; m_Verts[3].color = bl_color; m_Indexes[0] = 0; m_Indexes[1] = 1; m_Indexes[2] = 3; m_Indexes[3] = 1; m_Indexes[4] = 2; m_Indexes[5] = 3; Texture=text; } Wall::Wall() { // no code required } Cuboid::Cuboid(float cube_x, float cube_y, float cube_z, float cube_l, float cube_w, float cube_h, int text) { //Face 1 - Front m_Verts1[0].point = D3DXVECTOR3(cube_x - (cube_l / 2),cube_y + (cube_w / 2), cube_z - (cube_h / 2)); m_Verts1[1].point = D3DXVECTOR3(cube_x + (cube_l / 2),cube_y + (cube_w / 2), cube_z - (cube_h / 2)); m_Verts1[2].point = D3DXVECTOR3(cube_x + (cube_l / 2),cube_y - (cube_w / 2), cube_z - (cube_h / 2)); m_Verts1[3].point = D3DXVECTOR3(cube_x - (cube_l / 2),cube_y - (cube_w / 2), cube_z - (cube_h / 2)); //Face 2 - back m_Verts1[4].point = D3DXVECTOR3(cube_x - (cube_l / 2),cube_y + (cube_w / 2), cube_z + (cube_h / 2)); m_Verts1[5].point = D3DXVECTOR3(cube_x + (cube_l / 2),cube_y + (cube_w / 2), cube_z + (cube_h / 2)); m_Verts1[6].point = D3DXVECTOR3(cube_x + (cube_l / 2),cube_y - (cube_w / 2), cube_z + (cube_h / 2)); m_Verts1[7].point = D3DXVECTOR3(cube_x - (cube_l / 2),cube_y - (cube_w / 2), cube_z + (cube_h / 2)); //Face 3 - Left m_Verts1[8].point = D3DXVECTOR3(cube_x - (cube_l / 2),cube_y + (cube_w / 2), cube_z - (cube_h / 2)); m_Verts1[9].point = D3DXVECTOR3(cube_x - (cube_l / 2),cube_y + (cube_w / 2), cube_z + (cube_h / 2)); m_Verts1[10].point = D3DXVECTOR3(cube_x - (cube_l / 2),cube_y - (cube_w / 2), cube_z + (cube_h / 2)); m_Verts1[11].point = D3DXVECTOR3(cube_x - (cube_l / 2),cube_y - (cube_w / 2), cube_z - (cube_h / 2)); //Face 4 - Right m_Verts1[12].point = D3DXVECTOR3(cube_x + (cube_l / 2),cube_y + (cube_w / 2), cube_z - (cube_h / 2)); m_Verts1[13].point = D3DXVECTOR3(cube_x + (cube_l / 2),cube_y + (cube_w / 2), cube_z + (cube_h / 2)); m_Verts1[14].point = D3DXVECTOR3(cube_x + (cube_l / 2),cube_y - (cube_w / 2), cube_z + (cube_h / 2)); m_Verts1[15].point = D3DXVECTOR3(cube_x + (cube_l / 2),cube_y - (cube_w / 2), cube_z - (cube_h / 2)); //Face 5 - Top m_Verts1[16].point = D3DXVECTOR3(cube_x - (cube_l / 2),cube_y + (cube_w / 2), cube_z + (cube_h / 2)); m_Verts1[17].point = D3DXVECTOR3(cube_x + (cube_l / 2),cube_y + (cube_w / 2), cube_z + (cube_h / 2)); m_Verts1[18].point = D3DXVECTOR3(cube_x + (cube_l / 2),cube_y + (cube_w / 2), cube_z - (cube_h / 2)); m_Verts1[19].point = D3DXVECTOR3(cube_x - (cube_l / 2),cube_y + (cube_w / 2), cube_z - (cube_h / 2)); //Face 6 - Bottom m_Verts1[20].point = D3DXVECTOR3(cube_x - (cube_l / 2),cube_y - (cube_w / 2), cube_z + (cube_h / 2)); m_Verts1[21].point = D3DXVECTOR3(cube_x + (cube_l / 2),cube_y - (cube_w / 2), cube_z + (cube_h / 2)); m_Verts1[22].point = D3DXVECTOR3(cube_x + (cube_l / 2),cube_y - (cube_w / 2), cube_z - (cube_h / 2)); m_Verts1[23].point = D3DXVECTOR3(cube_x - (cube_l / 2),cube_y - (cube_w / 2), cube_z - (cube_h / 2)); m_Verts1[0].uv = D3DXVECTOR2(0,0); m_Verts1[1].uv = D3DXVECTOR2(1,0); m_Verts1[2].uv = D3DXVECTOR2(1,1); m_Verts1[3].uv = D3DXVECTOR2(0,1); m_Verts1[4].uv = D3DXVECTOR2(0,0); m_Verts1[5].uv = D3DXVECTOR2(1,0); m_Verts1[6].uv = D3DXVECTOR2(1,1); m_Verts1[7].uv = D3DXVECTOR2(0,1); m_Verts1[8].uv = D3DXVECTOR2(0,0); m_Verts1[9].uv = D3DXVECTOR2(1,0); m_Verts1[10].uv = D3DXVECTOR2(1,1); m_Verts1[11].uv = D3DXVECTOR2(0,1); m_Verts1[12].uv = D3DXVECTOR2(0,0); m_Verts1[13].uv = D3DXVECTOR2(1,0); m_Verts1[14].uv = D3DXVECTOR2(1,1); m_Verts1[15].uv = D3DXVECTOR2(0,1); m_Verts1[16].uv = D3DXVECTOR2(0,0); m_Verts1[17].uv = D3DXVECTOR2(1,0); m_Verts1[18].uv = D3DXVECTOR2(1,1); m_Verts1[19].uv = D3DXVECTOR2(0,1); m_Verts1[20].uv = D3DXVECTOR2(0,0); m_Verts1[21].uv = D3DXVECTOR2(1,0); m_Verts1[22].uv = D3DXVECTOR2(1,1); m_Verts1[23].uv = D3DXVECTOR2(0,1); m_Verts1[0].color = D3DCOLOR_RGBA(255,100,255,255); m_Verts1[1].color = D3DCOLOR_RGBA(255,100,255,255); m_Verts1[2].color = D3DCOLOR_RGBA(255,100,255,255); m_Verts1[3].color = D3DCOLOR_RGBA(255,100,255,255); m_Verts1[4].color = D3DCOLOR_RGBA(0,255,255,255); m_Verts1[5].color = D3DCOLOR_RGBA(0,255,255,255); m_Verts1[6].color = D3DCOLOR_RGBA(0,255,255,255); m_Verts1[7].color = D3DCOLOR_RGBA(0,255,255,255); m_Verts1[8].color = D3DCOLOR_RGBA(255,100,255,255); m_Verts1[9].color = D3DCOLOR_RGBA(255,100,255,255); m_Verts1[10].color = D3DCOLOR_RGBA(255,100,255,255); m_Verts1[11].color = D3DCOLOR_RGBA(255,100,255,255); m_Verts1[12].color = D3DCOLOR_RGBA(0,100,255,255); m_Verts1[13].color = D3DCOLOR_RGBA(0,100,255,255); m_Verts1[14].color = D3DCOLOR_RGBA(0,100,255,255); m_Verts1[15].color = D3DCOLOR_RGBA(0,100,255,255); m_Verts1[16].color = D3DCOLOR_RGBA(255,255,0,255); m_Verts1[17].color = D3DCOLOR_RGBA(255,255,0,255); m_Verts1[18].color = D3DCOLOR_RGBA(255,255,0,255); m_Verts1[19].color = D3DCOLOR_RGBA(255,255,0,255); m_Verts1[20].color = D3DCOLOR_RGBA(255,255,0,255); m_Verts1[21].color = D3DCOLOR_RGBA(255,255,0,255); m_Verts1[22].color = D3DCOLOR_RGBA(255,255,0,255); m_Verts1[23].color = D3DCOLOR_RGBA(255,255,0,255); //Front m_Indexes1[0] = 0; m_Indexes1[1] = 1; m_Indexes1[2] = 3; m_Indexes1[3] = 1; m_Indexes1[4] = 2; m_Indexes1[5] = 3; //Back m_Indexes1[6] = 4; m_Indexes1[7] = 5; m_Indexes1[8] = 7; m_Indexes1[9] = 5; m_Indexes1[10] = 6; m_Indexes1[11] = 7; //Left m_Indexes1[12] = 8; m_Indexes1[13] = 9; m_Indexes1[14] = 11; m_Indexes1[15] = 9; m_Indexes1[16] = 10; m_Indexes1[17] = 11; //Right m_Indexes1[18] = 12; m_Indexes1[19] = 13; m_Indexes1[20] = 15; m_Indexes1[21] = 13; m_Indexes1[22] = 14; m_Indexes1[23] = 15; //Top m_Indexes1[24] = 16; m_Indexes1[25] = 17; m_Indexes1[26] = 19; m_Indexes1[27] = 17; m_Indexes1[28] = 18; m_Indexes1[29] = 19; //Bottom m_Indexes1[30] = 20; m_Indexes1[31] = 21; m_Indexes1[32] = 23; m_Indexes1[33] = 21; m_Indexes1[34] = 22; m_Indexes1[35] = 23; Texture=text; } Cuboid::Cuboid() { //blank } void Wall::Render() { d3d_Device->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, 4, 2, m_Indexes, D3DFMT_INDEX16, m_Verts, sizeof(CUSTOMVERTEX)); } void Cuboid::Render() { d3d_Device->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, 36, 12, m_Indexes1, D3DFMT_INDEX16, m_Verts1, sizeof(CUSTOMVERTEX)); } // ---- End ---- // Wall *pQuad=NULL; Cuboid *pCube=NULL; int NumQuads=0; int NumTextures=0; int cubenumber=0; int MouseCurrentX = 0; int MouseCurrentY = 0; int MouseOriginX = 0; int MouseOriginY = 0; DWORD starttime=GetTickCount(), endtime;