// Tom Plick // army.cpp // 1 Sept 2005 #include "army.h" #include "d3dUtility.h" Army::Army(IDirect3DDevice9 * Device){ this->Device = Device; phase = 0.0; meshes[0] = new Mesh(Device, "x/leg.x"); meshes[1] = new Mesh(Device, "x/axle.x"); meshes[2] = new Mesh(Device, "x/brace.x"); meshes[3] = new Mesh(Device, "x/simpleaxle.x"); meshes[4] = new Mesh(Device, "x/grays.x"); } Army::~Army() { for (int i = 0; i < 5; i++) delete meshes[i]; } void Army::SetPhase(double phase){ this->phase = phase; } void Army::IncreasePhase(double increase){ this->phase += increase; } void Army::DrawPiece(int pieceId){ Piece &piece = pieces[pieceId]; double x = piece.xcenter; double y = piece.ycenter + piece.radius * cos(phase + piece.phaseShift); double z = piece.zcenter + piece.radius * sin(phase + piece.phaseShift); meshes[piece.pieceType]->Draw(x, y, z, piece.yRot, phase + piece.phaseShift); } void Army::DrawAllPieces(int number){ for (int i = 0; i < number; i++){ DrawPiece(i); } } void Army::SetPieceData(int pieceId, Piece &pieceData){ pieces[pieceId] = pieceData; pieces[pieceId].phaseShift *= 2*D3DX_PI; }