X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.h;h=28dd05c9a9d9cf966cba2748cac1677f783839aa;hb=5cbb24e1974b59f7580428768201b950423b88e2;hp=a6a224f09cb3a1aca99a8df77ebb10d6c74597c1;hpb=4002450137caf7133ae05ee9bf5302faac3d5040;p=rocksndiamonds.git diff --git a/src/tools.h b/src/tools.h index a6a224f0..28dd05c9 100644 --- a/src/tools.h +++ b/src/tools.h @@ -4,7 +4,7 @@ // (c) 1995-2014 by Artsoft Entertainment // Holger Schemel // info@artsoft.org -// http://www.artsoft.org/ +// https://www.artsoft.org/ // ---------------------------------------------------------------------------- // tools.h // ============================================================================ @@ -17,61 +17,61 @@ // for DrawElementShifted -#define NO_CUTTING 0 -#define CUT_ABOVE (1 << 0) -#define CUT_BELOW (1 << 1) -#define CUT_LEFT (1 << 2) -#define CUT_RIGHT (1 << 3) +#define NO_CUTTING 0 +#define CUT_ABOVE (1 << 0) +#define CUT_BELOW (1 << 1) +#define CUT_LEFT (1 << 2) +#define CUT_RIGHT (1 << 3) // for masking functions -#define NO_MASKING 0 -#define USE_MASKING 1 +#define NO_MASKING 0 +#define USE_MASKING 1 // for MoveDoor -#define DOOR_OPEN_1 (1 << 0) -#define DOOR_OPEN_2 (1 << 1) -#define DOOR_CLOSE_1 (1 << 2) -#define DOOR_CLOSE_2 (1 << 3) -#define DOOR_OPEN_ALL (DOOR_OPEN_1 | DOOR_OPEN_2) -#define DOOR_CLOSE_ALL (DOOR_CLOSE_1 | DOOR_CLOSE_2) -#define DOOR_ACTION_1 (DOOR_OPEN_1 | DOOR_CLOSE_1) -#define DOOR_ACTION_2 (DOOR_OPEN_2 | DOOR_CLOSE_2) -#define DOOR_ACTION (DOOR_ACTION_1 | DOOR_ACTION_2) -#define DOOR_COPY_BACK (1 << 4) -#define DOOR_NO_COPY_BACK (1 << 5) -#define DOOR_NO_DELAY (1 << 6) -#define DOOR_FORCE_ANIM (1 << 7) -#define DOOR_FORCE_REDRAW (1 << 8) -#define DOOR_GET_STATE (1 << 9) -#define DOOR_SET_STATE (1 << 10) - -#define DOOR_1 (DOOR_ACTION_1) -#define DOOR_2 (DOOR_ACTION_2) -#define DOOR_OPEN (DOOR_OPEN_ALL) -#define DOOR_CLOSE (DOOR_CLOSE_ALL) +#define DOOR_OPEN_1 (1 << 0) +#define DOOR_OPEN_2 (1 << 1) +#define DOOR_CLOSE_1 (1 << 2) +#define DOOR_CLOSE_2 (1 << 3) +#define DOOR_OPEN_ALL (DOOR_OPEN_1 | DOOR_OPEN_2) +#define DOOR_CLOSE_ALL (DOOR_CLOSE_1 | DOOR_CLOSE_2) +#define DOOR_ACTION_1 (DOOR_OPEN_1 | DOOR_CLOSE_1) +#define DOOR_ACTION_2 (DOOR_OPEN_2 | DOOR_CLOSE_2) +#define DOOR_ACTION (DOOR_ACTION_1 | DOOR_ACTION_2) +#define DOOR_COPY_BACK (1 << 4) +#define DOOR_NO_COPY_BACK (1 << 5) +#define DOOR_NO_DELAY (1 << 6) +#define DOOR_FORCE_ANIM (1 << 7) +#define DOOR_FORCE_REDRAW (1 << 8) +#define DOOR_GET_STATE (1 << 9) +#define DOOR_SET_STATE (1 << 10) + +#define DOOR_1 (DOOR_ACTION_1) +#define DOOR_2 (DOOR_ACTION_2) +#define DOOR_OPEN (DOOR_OPEN_ALL) +#define DOOR_CLOSE (DOOR_CLOSE_ALL) #define DOOR_INDEX_FROM_TOKEN(x) ((x) == DOOR_1 ? 0 : 1) #define DOOR_TOKEN_FROM_INDEX(x) ((x) == 0 ? DOOR_1 ? : DOOR_2) -#define REDRAW_DOOR_FROM_TOKEN(x) ((x) == DOOR_1 ? REDRAW_DOOR_1 : \ - REDRAW_DOOR_2) +#define REDRAW_DOOR_FROM_TOKEN(x) ((x) == DOOR_1 ? REDRAW_DOOR_1 : REDRAW_DOOR_2) // for Request -#define REQ_ASK (1 << 0) -#define REQ_CONFIRM (1 << 1) -#define REQ_PLAYER (1 << 2) -#define REQ_STAY_OPEN (1 << 3) -#define REQ_STAY_CLOSED (1 << 4) -#define REQ_REOPEN (1 << 5) +#define REQ_ASK (1 << 0) +#define REQ_CONFIRM (1 << 1) +#define REQ_PLAYER (1 << 2) +#define REQ_STAY_OPEN (1 << 3) +#define REQ_STAY_CLOSED (1 << 4) +#define REQ_REOPEN (1 << 5) -#define REQUEST_WAIT_FOR_INPUT (REQ_ASK | REQ_CONFIRM | REQ_PLAYER) - -int correctLevelPosX_EM(int); -int correctLevelPosY_EM(int); +int getFieldbufferOffsetX_RND(int, int); +int getFieldbufferOffsetY_RND(int, int); int getLevelFromScreenX(int); int getLevelFromScreenY(int); +int getScreenFieldSizeX(void); +int getScreenFieldSizeY(void); + void DumpTile(int, int); void DumpTileFromScreen(int, int); @@ -82,10 +82,12 @@ void DrawMaskedBorder_DOOR_3(void); void DrawMaskedBorder_ALL(void); void DrawMaskedBorder(int); void DrawMaskedBorderToTarget(int); -void DrawTileCursor(int); +void DrawTileCursor(int, int); void SetDrawtoField(int); +int GetDrawtoField(void); void RedrawPlayfield(void); +void BlitScreenToBitmapExt_RND(Bitmap *, int, int); void BlitScreenToBitmap_RND(Bitmap *); void BlitScreenToBitmap(Bitmap *); void BackToFront(void); @@ -103,9 +105,12 @@ void FadeSetDisabled(void); void FadeSkipNextFadeIn(void); void FadeSkipNextFadeOut(void); +int getImageFromGraphicOrDefault(int, int); Bitmap *getGlobalBorderBitmapFromStatus(int); void ClearField(void); + +void SetBackgroundImage(int, int); void SetWindowBackgroundImageIfDefined(int); void SetMainBackgroundImageIfDefined(int); void SetDoorBackgroundImageIfDefined(int); @@ -121,14 +126,17 @@ void RedrawGlobalBorder(void); void MarkTileDirty(int, int); void SetBorderElement(void); -void FloodFillLevel(int, int, int, short[][MAX_LEV_FIELDY], int, int); -void FloodFillLevelExt(int, int, int, int, int y, short field[][y], int, int); +void FloodFillLevel(int, int, int, short[MAX_LEV_FIELDX][MAX_LEV_FIELDY], int, int); +void FloodFillLevelExt(int, int, int, int x, int y, short field[x][y], int, int); void SetRandomAnimationValue(int, int); +void SetAnimationFirstLevel(int); int getGraphicAnimationFrame(int, int); +int getGraphicAnimationFrameXY(int, int, int); void DrawFixedGraphicAnimation(int, int, int); void DrawFixedGraphicAnimationExt(DrawBuffer *, int, int, int, int, int); +void DrawSizedGraphicAnimationExt(DrawBuffer *, int, int, int, int, int, int); void DrawLevelGraphicAnimation(int, int, int); void DrawLevelElementAnimation(int, int, int); @@ -145,6 +153,7 @@ void getSizedGraphicSourceExt(int, int, int, Bitmap **, int *, int *, boolean); void getSizedGraphicSource(int, int, int, Bitmap **, int *, int *); void getFixedGraphicSource(int, int, Bitmap **, int *, int *); void getMiniGraphicSource(int, Bitmap **, int *, int *); +void getGlobalAnimGraphicSource(int, int, Bitmap **, int *, int *); void getGraphicSource(int, int, Bitmap **, int *, int *); void DrawGraphic(int, int, int, int); @@ -175,6 +184,8 @@ void DrawLevelFieldThruMask(int, int); void DrawLevelFieldCrumbled(int, int); void DrawLevelFieldCrumbledDigging(int, int, int, int); void DrawLevelFieldCrumbledNeighbours(int, int); +void DrawScreenGraphic(int, int, int, int); +void DrawLevelGraphic(int, int, int, int); void DrawScreenElement(int, int, int); void DrawLevelElement(int, int, int); void DrawScreenField(int, int); @@ -189,11 +200,13 @@ void DrawMiniElement(int, int, int); void DrawMiniElementOrWall(int, int, int, int); void ShowEnvelope(int); -void ShowEnvelopeDoor(char *text, int); +void ShowEnvelopeDoor(char *, int); +void DrawEnvelopeRequestToScreen(int); void DrawLevel(int); void DrawSizedLevel(int, int, int, int, int); void DrawMiniLevel(int, int, int, int); +void DrawPreviewPlayers(void); void DrawPreviewLevelInitial(void); void DrawPreviewLevelAnimation(void); @@ -201,7 +214,7 @@ void DrawNetworkPlayers(void); void ClearNetworkPlayers(void); void WaitForEventToContinue(void); -boolean Request(char *, unsigned int); +int Request(char *, unsigned int); void InitGraphicCompatibilityInfo_Doors(void); void InitDoors(void); unsigned int OpenDoor(unsigned int); @@ -216,8 +229,12 @@ void UndrawSpecialEditorDoor(void); void CreateToolButtons(void); void FreeToolButtons(void); -int map_element_RND_to_EM(int); -int map_element_EM_to_RND(int); +int map_element_RND_to_BD(int); +int map_element_BD_to_RND(int); + +int map_element_RND_to_EM_cave(int); +int map_element_EM_to_RND_cave(int); +int map_element_EM_to_RND_game(int); int map_direction_RND_to_EM(int); int map_direction_EM_to_RND(int); @@ -259,6 +276,8 @@ int getBeltSwitchElementFromBeltNrAndBeltDirNr(int, int); int getBeltSwitchElementFromBeltNrAndBeltDir(int, int); unsigned int InitRND(int); + +void InitGraphicInfo_BD(void); void InitGraphicInfo_EM(void); void PlayMenuSoundExt(int); @@ -280,10 +299,19 @@ void ResetFontStatus(void); void SetLevelSetInfo(char *, int); -void ToggleFullscreenOrChangeWindowScalingIfNeeded(void); +void ToggleFullscreenIfNeeded(void); +void ChangeWindowScalingIfNeeded(void); +void ChangeVsyncModeIfNeeded(void); void ChangeViewportPropertiesIfNeeded(void); boolean CheckIfAllViewportsHaveChanged(void); boolean CheckFadeAll(void); +void OpenURL(char *); +void OpenURLFromHash(SetupFileHash *, int); + +char *getCurrentLevelsetName(void); + +void TestGeneratingUUIDs(void); + #endif // TOOLS_H