public Hook ( |
||
renderer | ||
s | ||
ti | int | |
fti | int | |
building | int | |
리턴 | void |
public void Hook(RTSRenderer renderer, GameState s, int ti, int fti, int building)
{
// Filter For Unit Types
RTSTeam team = s.teams[ti];
Data = team.Race.Buildings[building];
fTeam = s.teams[fti];
eTeamIndex = ti;
fTeamIndex = fti;
bType = building;
// Create Instance Buffer
visible = new List<VisibleBuilding>();
instVerts = new VertexRTSAnimInst[Data.MaxCount];
for(int i = 0; i < instVerts.Length; i++)
instVerts[i] = new VertexRTSAnimInst(Matrix.Identity, 1);
dvbInstances = renderer.CreateDynamicVertexBuffer(VertexRTSAnimInst.Declaration, instVerts.Length, BufferUsage.WriteOnly);
dvbInstances.SetData(instVerts);
dvbInstances.ContentLost += (sender, args) => { rebuildDVB = true; };
rebuildDVB = false;
}
private void LoadTeamVisuals(GameState state, int ti) { RTSTeam team = state.teams[ti]; // Create Unit Graphics var ums = ti == teamIndex ? FriendlyUnitModels : NonFriendlyUnitModels; for (int i = 0; i < team.Race.ActiveUnits.Length; i++) { int ui = team.Race.ActiveUnits[i].Index; RTSUnitData uData = team.Race.Units[ui]; RTSUnitModel uModel = RTSUnitDataParser.ParseModel(this, new FileInfo(uData.InfoFile), team.Race); uModel.Hook(this, state, ti, team.Race.ActiveUnits[i].Index); uModel.ColorScheme = team.ColorScheme; ums.Add(uModel); } // Create Building Graphics var bms = ti == teamIndex ? FriendlyBuildingModels : NonFriendlyBuildingModels; for (int i = 0; i < team.Race.ActiveBuildings.Length; i++) { RTSBuildingModel bModel = RTSBuildingDataParser.ParseModel(this, new FileInfo(team.Race.ActiveBuildings[i].InfoFile), team.Race); bModel.Hook(this, state, ti, teamIndex, team.Race.ActiveBuildings[i].Index); bModel.ColorScheme = team.ColorScheme; bms.Add(bModel); } }