about summary refs log tree commit diff
CARDS(3) Library Functions Manual CARDS(3)

Cards_LoadCards, Cards_LoadFreeCell, Cards_InvertSurfacebitmap resource loader

#include <cards.h>

int
Cards_LoadCards(SDL_Surface *surfaces[], size_t count, SDL_RWops *rw, enum Cards_Flag flags);

int
Cards_LoadFreeCell(SDL_Surface *surfaces[], size_t count, SDL_RWops *rw, enum Cards_Flag flags);

int
Cards_InvertSurface(SDL_Surface *surface);

() and Cards_LoadFreeCell() load bitmap resources into an array of count surfaces. Resources can be loaded from 16-bit NE executables or from 32-bit PE executables.

() loads card bitmaps from a CARDS.DLL or Windows 3.0 SOL.EXE file rw.

Indices of loaded surfaces are defined by the following:

Suit
, Cards_Diamond, Cards_Heart, Cards_Spade.
Rank
, Cards_2, Cards_3, Cards_4, Cards_5, Cards_6, Cards_7, Cards_8, Cards_9, Cards_10, Cards_J, Cards_Q, Cards_K.
Back
, Cards_Back2, Cards_Back3, Cards_Back4, Cards_Back5, Cards_Back6, Cards_Back7, Cards_Back8, Cards_Back9, Cards_Back10, Cards_Back11, Cards_Back12.
Other
, Cards_X, Cards_O.

Where suit and rank constants are added together to form an index. Note that there are gaps in the indices and some surface pointers will be set to NULL. The maximum number of surfaces is defined by Cards_CardCount.

The dimensions of the loaded surfaces are defined by Cards_CardWidth and Cards_CardHeight.

() accepts the following flags:

Use color key transparency for the Cards_Empty, Cards_X and Cards_O surfaces.
Make the rounded card corners transparent.
Make all card borders black.

() loads bitmaps from a FREECELL.EXE file rw.

Indices of loaded surfaces are defined by Cards_KingRight, Cards_KingLeft and Cards_KingWin. Note that there are gaps in the indices and some surface pointers will be set to NULL. The maximum number of surfaces is defined by Cards_FreeCellCount.

The dimensions of the loaded surfaces are defined by Cards_KingWidth and Cards_KingHeight.

() accepts the following flags:

Use color key transparency.

() inverts the colors of a surface loaded by Cards_LoadCards().

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned.

The cards.dll repository contains various versions of the files CARDS.DLL, FREECELL.EXE and SOL.EXE.

See example.c.

Error messages are set with SDL_SetError() and can be retrieved with SDL_GetError().

Cards_LoadCards() and Cards_LoadFreeCell() may fail for the following reasons: any SDL_RWops or SDL_Surface error; invalid MZ, NE or PE signatures; missing resource table; invalid resource hierarchy; missing resource.

Cards_InvertSurface() may fail for any SDL_Surface error or if the surface format is not supported.

June McEnroe <june@causal.agency>

August 22, 2019 OpenBSD 7.6