Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- Replace world model filename prefix in ARMA records.
- }
- unit _p7_Replace_MOD_prefix_in_ARMA;
- interface
- {
- // Uncomment this block to enable linting, requires xEdit >= 4.0.3
- uses
- System.Classes, // TStringList
- System.SysUtils, // StringReplace, rfIgnoreCase
- xEditAPI;
- procedure SetupList(list: TStringList; text: string);
- }
- const
- ORIGINAL_MALE_PATHS =
- 'Armor\Imperial\M\'
- + ';Armor\Khajiit\tom\'
- + ';Armor\Nord\';
- ORIGINAL_FEMALE_PATHS =
- 'Armor\Imperial\F\'
- + ';Armor\Khajiit\pussy\'
- + ';Armor\Nord\';
- CUSTOM_MALE_PATHS =
- 'CustomRaces\Imperial\Male\armor\'
- + ';CustomRaces\Khajiit\Male\armor\'
- + ';CustomRaces\Nord\Male\armor\';
- CUSTOM_FEMALE_PATHS =
- 'CustomRaces\Imperial\Female\armor\'
- + ';CustomRaces\Khajiit\Female\armor\'
- + ';CustomRaces\Nord\Female\armor\';
- MALE_MOD = 'Male world model\MOD2';
- FEMALE_MOD = 'Female world model\MOD3';
- implementation
- var
- origMalePaths, origFemalePaths, custMalePaths, custFemalePaths: TStringList;
- function Initialize: integer;
- begin
- Result := 0;
- origMalePaths := TStringList.Create;
- origFemalePaths := TStringList.Create;
- custMalePaths := TStringList.Create;
- custFemalePaths := TStringList.Create;
- SetupList(origMalePaths, ORIGINAL_MALE_PATHS);
- SetupList(origFemalePaths, ORIGINAL_FEMALE_PATHS);
- SetupList(custMalePaths, CUSTOM_MALE_PATHS);
- SetupList(custFemalePaths, CUSTOM_FEMALE_PATHS);
- end;
- function Process(e: IInterface): integer;
- var
- i: integer;
- maleMod, femaleMod, newMod: string;
- begin
- Result := 0;
- maleMod := GetElementEditValues(e, MALE_MOD);
- for i := 0 to Pred(origMalePaths.Count) do begin
- //AddMessage(Format('DEBUG: Pos(\'%s\', \'%s\') == %i', [origMalePaths[i], maleMod, Pos(origMalePaths[i], maleMod)]));
- if Pos(origMalePaths[i], maleMod) = 1 then begin
- newMod := StringReplace(maleMod, origMalePaths[i], custMalePaths[i], [rfIgnoreCase]);
- SetElementEditValues(e, MALE_MOD, newMod);
- break;
- end;
- end;
- femaleMod := GetElementEditValues(e, FEMALE_MOD);
- for i := 0 to Pred(origFemalePaths.Count) do begin
- //AddMessage(Format('DEBUG: Pos(\'%s\', \'%s\') == %i', [origFemalePaths[i], femaleMod, Pos(origFemalePaths[i], femaleMod)]));
- if Pos(origFemalePaths[i], femaleMod) = 1 then begin
- newMod := StringReplace(femaleMod, origFemalePaths[i], custFemalePaths[i], [rfIgnoreCase]);
- SetElementEditValues(e, FEMALE_MOD, newMod);
- break;
- end;
- end;
- end;
- function Finalize: integer;
- begin
- Result := 0;
- origMalePaths.Free;
- origFemalePaths.Free;
- custMalePaths.Free;
- custFemalePaths.Free;
- end;
- procedure SetupList(list: TStringList; text: string);
- begin
- list.Delimiter := ';';
- list.StrictDelimiter := True;
- list.DelimitedText := text;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement