- procedure TBSPMap.ProcessEntity(Block : TStringList);
- var
- i,s,e,s2,e2 : integer;
- Name,Value,ValueUC,SS : string;
- Angle : Boolean;
- begin
- if not (block.count > 0) then exit;
- inc(Data.numOfBSPEntitys);
- Setlength(Data.Entitys,Data.numOfBSPEntitys);
- Angle := False;
- Data.Entitys[Data.numOfBSPEntitys-1].NewtonIndex := -1;
- Data.Entitys[Data.numOfBSPEntitys-1].Mid := -1;
- Data.Entitys[Data.numOfBSPEntitys-1].TargetId := -1;
- Data.Entitys[Data.numOfBSPEntitys-1].TargetedById := -1;
- Data.Entitys[Data.numOfBSPEntitys-1].HintId := -1;
- Data.Entitys[Data.numOfBSPEntitys-1].Model2Id := -1;
- Data.Entitys[Data.numOfBSPEntitys-1].MoveableID := -1;
- // Process data and place in Entitys
- try
- for i := 0 to block.Count-1 do
- begin
- s := Pos('"',block.Strings[i]);
- e := Pos('"',copy(block.Strings[i],s+1,length(block.Strings[i])));
- Name := ansilowercase(copy(block.Strings[i],s+1,e-s));
- SS := copy(block.Strings[i],e+2,length(block.Strings[i]));
- s2 := Pos('"',SS);
- e2 := Pos('"',copy(SS,s2+1,length(SS)));
- ValueUC := copy(SS,s2+1,e2+1-s2);
- Value := ansilowercase(ValueUC);
- if name = 'classname' then
- Data.Entitys[Data.numOfBSPEntitys-1].Classname := Value
- else
- if name = 'target' then
- Data.Entitys[Data.numOfBSPEntitys-1].Target := Value
- else
- if name = 'targetname' then
- Data.Entitys[Data.numOfBSPEntitys-1].Targetname := Value
- else
- if name = 'cursorhint' then
- Data.Entitys[Data.numOfBSPEntitys-1].Hint := PChar(Value)
- else
- if name = 'team' then
- Data.Entitys[Data.numOfBSPEntitys-1].Team := Value
- else
- if (name = 'filename') or(name = 'scriptname') or (name = 'ainame') then
- Data.Entitys[Data.numOfBSPEntitys-1].ScriptName := Value
- else
- if name = 'model' then
- begin
- Data.Entitys[Data.numOfBSPEntitys-1].model := PChar(Value);
- if Copy(Value,1,1) = '*' then
- Data.Entitys[Data.numOfBSPEntitys-1].mid := Strtoint(Copy(Value,2,length(Value)))
- else
- Data.Entitys[Data.numOfBSPEntitys-1].mid := -1;
- end
- else
- if name = 'model2' then
- Data.Entitys[Data.numOfBSPEntitys-1].model2 := Value
- else
- if name = 'origin' then
- begin
- Data.Entitys[Data.numOfBSPEntitys-1].Origin := ParseEntityVector3f(Value);
- Data.Entitys[Data.numOfBSPEntitys-1].OriginUsed := True;
- end
- else
- if name = 'mass' then
- Data.Entitys[Data.numOfBSPEntitys-1].mass := StrtoInt(Value)
- else
- if name = 'spawnflags' then
- Data.Entitys[Data.numOfBSPEntitys-1].spawnflags := StrtoInt(Value)
- else
- if name = 'degrees' then
- Data.Entitys[Data.numOfBSPEntitys-1].Degrees := StrtoInt(Value)
- else
- if name = 'angle' then
- Data.Entitys[Data.numOfBSPEntitys-1].Angle := StrtoInt(Value)
- else
- if name = 'lip' then
- Data.Entitys[Data.numOfBSPEntitys-1].Lip := StrtoInt(Value)
- else
- if name = 'speed' then
- Data.Entitys[Data.numOfBSPEntitys-1].Speed := StrtoInt(Value)
- else
- if name = 'closespeed' then
- Data.Entitys[Data.numOfBSPEntitys-1].Closespeed := StrtoInt(Value)
- else
- if name = 'frames' then
- Data.Entitys[Data.numOfBSPEntitys-1].Frames := StrtoInt(Value)
- else
- if name = 'loop' then
- Data.Entitys[Data.numOfBSPEntitys-1].LoopFrame := StrtoInt(Value)
- else
- if name = 'startonframe' then
- Data.Entitys[Data.numOfBSPEntitys-1].StartFrame := StrtoInt(Value)
- else
- if name = 'wait' then
- Data.Entitys[Data.numOfBSPEntitys-1].Wait := StrtoFloat(Value)
- else
- if name = 'random' then
- Data.Entitys[Data.numOfBSPEntitys-1].Random := StrtoFloat(Value)
- else
- begin
- if (name <> '') and (value <> '') then
- begin
- // Need to add support for unknowns sometime (used in func_multipul)
- {inc(Entitys[numOfBSPEntitys-1].Unknown_No);
- SetLength(Entitys[numOfBSPEntitys-1].Unknowns,Entitys[numOfBSPEntitys-1].Unknown_No);
- Entitys[numOfBSPEntitys-1].Unknowns[Entitys[numOfBSPEntitys-1].Unknown_No-1].Name := Name;
- Entitys[numOfBSPEntitys-1].Unknowns[Entitys[numOfBSPEntitys-1].Unknown_No-1].Value := Value; }
- end;
- end;
- end
- except
- // Add Error Message Here!
- end;
- end;