X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_textures.pas;h=36ab6bdba1dc4250ef33fe7d2b8dfaa7585d4243;hb=f855d3d16f4a7dcbbe7dffd3cfa5dfd3b9909458;hp=0688391518db7252157ff16858960d6636178899;hpb=7d5ba44e3ea987adb8c846236613e8e5590ba750;p=d2df-sdl.git diff --git a/src/game/g_textures.pas b/src/game/g_textures.pas index 0688391..36ab6bd 100644 --- a/src/game/g_textures.pas +++ b/src/game/g_textures.pas @@ -98,6 +98,7 @@ function g_Frames_CreateFile(ID: PDWORD; Name: ShortString; FileName: String; FWidth, FHeight, FCount: Word; BackAnimation: Boolean = False): Boolean; function g_Frames_CreateMemory(ID: PDWORD; Name: ShortString; pData: Pointer; dataSize: LongInt; FWidth, FHeight, FCount: Word; BackAnimation: Boolean = False): Boolean; +function g_Frames_Dup(NewName, OldName: ShortString): Boolean; //function g_Frames_CreateRevert(ID: PDWORD; Name: ShortString; Frames: string): Boolean; function g_Frames_Get(out ID: DWORD; FramesName: ShortString): Boolean; function g_Frames_GetTexture(out ID: DWORD; FramesName: ShortString; Frame: Word): Boolean; @@ -514,6 +515,30 @@ begin Result := True; end;} +function g_Frames_Dup(NewName, OldName: ShortString): Boolean; +var + find_id, b: DWORD; + a, c: Integer; +begin + Result := False; + + if not g_Frames_Get(b, OldName) then Exit; + + find_id := FindFrame(); + + FramesArray[find_id].Name := LowerCase(NewName); + FramesArray[find_id].FrameWidth := FramesArray[b].FrameWidth; + FramesArray[find_id].FrameHeight := FramesArray[b].FrameHeight; + + c := High(FramesArray[b].TexturesID); + SetLength(FramesArray[find_id].TexturesID, c+1); + + for a := 0 to c do + FramesArray[find_id].TexturesID[a] := FramesArray[b].TexturesID[a]; + + Result := True; +end; + procedure g_Frames_DeleteByName(FramesName: ShortString); var a: DWORD;