index 7016db9b17456ed6c7ee0f8587b6b5e257a76b2a..3e35ac9e01e6d75689a8d4add79f34ff28652507 100644 (file)
const
EDIT_CURSORLEN = 10;
- type
- THereTexture = record
- name: AnsiString;
- id: TGLTexture;
- end;
-
var
Box: Array [0..8] of TGLTexture;
MarkerID: array [Boolean] of TGLTexture;
Background: THereTexture;
ImageControl: THereTexture;
- procedure r_GUI_FreeThis (var here: THereTexture);
- begin
- here.name := '';
- if here.id <> nil then
- here.id.Free;
- here.id := nil;
- end;
-
- function r_GUI_LoadThis (const name: AnsiString; var here: THereTexture): Boolean;
- begin
- r_GUI_FreeThis(here);
- if (name <> '') and (here.name <> name) then
- here.id := r_Textures_LoadFromFile(name);
- result := here.id <> nil;
- end;
-
procedure r_GUI_Load;
var i: Integer;
begin
Font[FALSE] := smallfont;
Font[TRUE] := menufont;
- MarkerID[FALSE] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/MARKER1');
- MarkerID[TRUE] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/MARKER2');
+ r_Common_SetLoading('GUI', 2 + 9 + 14);
+
+ MarkerID[FALSE] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/MARKER1', [TGLHints.txNoRepeat]);
+ MarkerID[TRUE] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/MARKER2', [TGLHints.txNoRepeat]);
for i := 0 to 8 do
- Box[i] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/BOX' + IntToStr(i + 1));
+ Box[i] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/BOX' + IntToStr(i + 1), []); // !!!
- ScrollLeft := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SLEFT');
- ScrollRight := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SRIGHT');
- ScrollMiddle := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SMIDDLE');
- ScrollMarker := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SMARKER');
+ ScrollLeft := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SLEFT', [TGLHints.txNoRepeat]);
+ ScrollRight := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SRIGHT', [TGLHints.txNoRepeat]);
+ ScrollMiddle := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SMIDDLE', []);
+ ScrollMarker := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SMARKER', [TGLHints.txNoRepeat]);
- EditLeft := r_Textures_LoadFromFile(GameWad + ':TEXTURES/ELEFT');
- EditRight := r_Textures_LoadFromFile(GameWad + ':TEXTURES/ERIGHT');
- EditMiddle := r_Textures_LoadFromFile(GameWad + ':TEXTURES/EMIDDLE');
+ EditLeft := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/ELEFT', [TGLHints.txNoRepeat]);
+ EditRight := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/ERIGHT', [TGLHints.txNoRepeat]);
+ EditMiddle := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/EMIDDLE', []);
- BScrollUp[true] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SCROLLUPA');
- BScrollUp[false] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SCROLLUPU');
- BScrollDown[true] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SCROLLDOWNA');
- BScrollDown[false] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SCROLLDOWNU');
- BScrollMiddle := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SCROLLMIDDLE');
+ BScrollUp[true] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLUPA', [TGLHints.txNoRepeat]);
+ BScrollUp[false] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLUPU', [TGLHints.txNoRepeat]);
+ BScrollDown[true] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLDOWNA', [TGLHints.txNoRepeat]);
+ BScrollDown[false] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLDOWNU', [TGLHints.txNoRepeat]);
+ BScrollMiddle := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLMIDDLE', []);
- LogoTex := r_Textures_LoadFromFile(GameWad + ':TEXTURES/MAINLOGO');
- nopic := r_Textures_LoadFromFile(GameWad + ':TEXTURES/NOPIC');
+ LogoTex := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/MAINLOGO', [TGLHints.txNoRepeat]);
+ nopic := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/NOPIC', [TGLHints.txNoRepeat]);
end;
procedure r_GUI_Free;
Font[FALSE] := nil;
Font[TRUE] := nil;
- MarkerID[FALSE].Free;
- MarkerID[TRUE].Free;
+ r_Common_FreeAndNil(MarkerID[FALSE]);
+ r_Common_FreeAndNil(MarkerID[TRUE]);
for i := 0 to 8 do
- Box[i].Free;
+ r_Common_FreeAndNil(Box[i]);
- ScrollLeft.Free;
- ScrollRight.Free;
- ScrollMiddle.Free;
- ScrollMarker.Free;
+ r_Common_FreeAndNil(ScrollLeft);
+ r_Common_FreeAndNil(ScrollRight);
+ r_Common_FreeAndNil(ScrollMiddle);
+ r_Common_FreeAndNil(ScrollMarker);
- EditLeft.Free;
- EditRight.Free;
- EditMiddle.Free;
+ r_Common_FreeAndNil(EditLeft);
+ r_Common_FreeAndNil(EditRight);
+ r_Common_FreeAndNil(EditMiddle);
- BScrollUp[true].Free;
- BScrollUp[false].Free;
- BScrollDown[true].Free;
- BScrollDown[false].Free;
- BScrollMiddle.Free;
+ r_Common_FreeAndNil(BScrollUp[true]);
+ r_Common_FreeAndNil(BScrollUp[false]);
+ r_Common_FreeAndNil(BScrollDown[true]);
+ r_Common_FreeAndNil(BScrollDown[false]);
+ r_Common_FreeAndNil(BScrollMiddle);
- LogoTex.Free;
- nopic.Free;
+ r_Common_FreeAndNil(LogoTex);
+ r_Common_FreeAndNil(nopic);
- r_GUI_FreeThis(Background);
- r_GUI_FreeThis(ImageControl);
+ r_Common_FreeThis(Background);
+ r_Common_FreeThis(ImageControl);
end;
procedure r_GUI_GetMaxFontSize (BigFont: Boolean; out w, h: Integer);
var w, h: Integer; r, g, b: Byte; f: TGLFont;
begin
r_Draw_Texture(EditLeft, ctrl.X, ctrl.Y, EditLeft.width, EditLeft.height, false, 255, 255, 255, 255, false);
- r_Draw_TextureRepeat(EditMiddle, ctrl.X + 8, ctrl.Y, 8 + (ctrl.Width - 1) * 16, EditMiddle.height, false, 255, 255, 255, 255, false);
+ r_Draw_TextureRepeat(EditMiddle, ctrl.X + 8, ctrl.Y, 8 + ctrl.Width * 16, EditMiddle.height, false, 255, 255, 255, 255, false);
r_Draw_Texture(EditRight, ctrl.X + 8 + ctrl.Width * 16, ctrl.Y, EditRight.width, EditRight.height, false, 255, 255, 255, 255, false);
r := ctrl.Color.R;
g := ctrl.Color.G;
begin
pic := nopic;
if ctrl.ImageRes <> '' then
- if r_GUI_LoadThis(ctrl.ImageRes, ImageControl) then
+ if r_Common_LoadThis(ctrl.ImageRes, ImageControl) then
pic := ImageControl.id;
if pic <> nil then
r_Draw_Texture(pic, ctrl.x, ctrl.y, pic.width, pic.height, false, 255, 255, 255, 255, false);
begin
// Here goes code duplication from g_game.pas:DrawMenuBackground()
if win.BackTexture <> '' then
- if r_GUI_LoadThis(win.BackTexture, Background) then
+ if r_Common_LoadThis(win.BackTexture, Background) then
begin
r_Draw_FillRect(0, 0, gScreenWidth - 1, gScreenHeight - 1, 0, 0, 0, 255);
tw := Background.id.width;