129 lines
3.9 KiB
C
129 lines
3.9 KiB
C
|
#ifndef __INTERFACEUTIL
|
||
|
#define __INTERFACEUTIL
|
||
|
|
||
|
#include "vectors.h"
|
||
|
#include "fileio.h"
|
||
|
|
||
|
enum{
|
||
|
kInterfaceMenuItemDisabled=1<<0,
|
||
|
kInterfaceMenuItemArrowInput=1<<1,
|
||
|
kInterfaceMenuItemTypeable=1<<2,
|
||
|
kInterfaceMenuItemTypeHidden=1<<3,
|
||
|
kInterfaceMenuItemSlider=1<<4,
|
||
|
kInterfaceMenuItemFixedPos=1<<5
|
||
|
};
|
||
|
|
||
|
enum{
|
||
|
kInterfaceMenuEsc=1<<31,
|
||
|
kInterfaceMenuLeftArrow=1<<30,
|
||
|
kInterfaceMenuRightArrow=1<<29,
|
||
|
kInterfaceMenuOK=1<<28,
|
||
|
kInterfaceMenuEasterEgg=1<<27,
|
||
|
kInterfaceMenuReplayKey=1<<26,
|
||
|
kInterfaceMenuSpaceFlag=1<<25,
|
||
|
};
|
||
|
|
||
|
#define kInterfaceBackgroundTexture "background.tif"
|
||
|
|
||
|
#define kInterfaceMenuSlideBarTexture "bar.tif"
|
||
|
#define kInterfaceMenuSlideBarHeight 0.01
|
||
|
#define kInterfaceMenuSlideBarStart 0.35
|
||
|
#define kInterfaceMenuSlideBarWidth 0.45
|
||
|
|
||
|
#define kInterfaceMenuSliderTexture "slider.tif"
|
||
|
#define kInterfaceMenuSliderSize 0.02
|
||
|
#define kInterfaceKeyImageSize 0.06
|
||
|
|
||
|
#define kBackgroundXStretch 0.622
|
||
|
#define kBackgroundYStretch 0.43
|
||
|
|
||
|
#define kInterfaceStatusTexture kInterfaceMenuSlideBarTexture
|
||
|
|
||
|
#define kInterfaceMenuItemMask (~(kInterfaceMenuLeftArrow|kInterfaceMenuRightArrow|kInterfaceMenuEasterEgg|kInterfaceMenuReplayKey|kInterfaceMenuSpaceFlag))
|
||
|
|
||
|
typedef struct{
|
||
|
char label[256];
|
||
|
char describtion[512];
|
||
|
char type[256];
|
||
|
int flags;
|
||
|
int maxTypeLength;
|
||
|
float maxTypeXPos;
|
||
|
float sliderPos;
|
||
|
float sliderTransparency;
|
||
|
float sel;
|
||
|
float size;
|
||
|
float scroll;
|
||
|
float lineSpacing;
|
||
|
float r,g,b;
|
||
|
float fixedX,fixedY;
|
||
|
} tInterfaceMenuItemDescribtion;
|
||
|
|
||
|
enum{
|
||
|
kMenuTypeableOff,
|
||
|
kMenuTypeableOn,
|
||
|
kMenuTypeableReggie
|
||
|
};
|
||
|
|
||
|
typedef struct{
|
||
|
char title[256];
|
||
|
char type[256];
|
||
|
int initialSelection;
|
||
|
int numItems;
|
||
|
int scrollEnable;
|
||
|
int menuTypeable;
|
||
|
tFileRef image,background;
|
||
|
int enterAlwaysOK;
|
||
|
int returnOnSpace;
|
||
|
int easterEggEnable;
|
||
|
int easterEggString;
|
||
|
int joinDisable;
|
||
|
float cursorPos,cursorShowPos;
|
||
|
float easterEggScrollPos;
|
||
|
float imageXScale,imageYScale;
|
||
|
float imageXPos,imageYPos;
|
||
|
float imageAlpha;
|
||
|
float itemsXPos,itemsYPos;
|
||
|
float minScroll;
|
||
|
tVector2 mousePos;
|
||
|
tVector2 descPos;
|
||
|
tInterfaceMenuItemDescribtion *items;
|
||
|
void *userData;
|
||
|
void (*RenderCallback)(void*,int,void*);
|
||
|
int (*TimerCallback)(void*);
|
||
|
} tInterfaceMenuDescribtion;
|
||
|
|
||
|
#define kTitlePosX -0.93
|
||
|
#define kTitlePosY 0.98
|
||
|
|
||
|
#define kInterfaceMenuPointerTexture "menupointer.tif"
|
||
|
#define kInterfaceMenuPointerSize 0.02
|
||
|
|
||
|
extern int gJoinFlag;
|
||
|
extern char gJoinHost[];
|
||
|
extern char gLastMenuChar;
|
||
|
extern int gInterfaceType;
|
||
|
extern float gStartIdleTime;
|
||
|
|
||
|
int InterfaceGetUserInputString(char *prompt,char *stringBuffer,int bufferSize,int fullCharSet,int hideType);
|
||
|
int InterfaceGetUserMenuSelection(tInterfaceMenuDescribtion *menu);
|
||
|
void InterfaceDrawStrings(char *stringBuffer,char *secondaryStringBuffer,tFileRef background);
|
||
|
void InterfaceDisplayMessage(tFileRef background,char *stringBuffer,char *secondaryStringBuffer);
|
||
|
void CashString(int cash, char *str);
|
||
|
void MakeNumString(int i,char *str);
|
||
|
void TextScrollFile(tFileRef text);
|
||
|
void InterfaceTextBufferZoomAnimation(tFileRef background,int in);
|
||
|
void InterfaceMenuZoomAnimation(tInterfaceMenuDescribtion *menu,int selection,int in);
|
||
|
void InterfaceInitMenu(tInterfaceMenuDescribtion *menu,int numItems,char *title);
|
||
|
void InterfaceDisposeMenu(tInterfaceMenuDescribtion *menu);
|
||
|
void InterfaceDrawBackground(tFileRef background,tFileRef image,float imageXScale,float imageYScale,float imageXPos,float imageYPos,float alpha);
|
||
|
int InterfaceGetUserConfirmation(char *title,char *text);
|
||
|
void InterfaceFadeInImageFromBlack(float xSize,float ySize,tFileRef image,float maxTime);
|
||
|
void InterfaceFadeInInterfaceFromImage(tFileRef image,float maxTime);
|
||
|
void InterfaceFadeInImageFromImage(float xSize,float ySize,tFileRef image,float xSize2,float ySize2,tFileRef image2,float maxTime);
|
||
|
void InterfaceDrawBackgroundFade(float opacity,int showtop);
|
||
|
void InterfaceDrawStatusBar(char *stringBuffer,char *secondaryStringBuffer,float status);
|
||
|
|
||
|
|
||
|
void InterfaceRenderReplay(void *userData,int selection,void *menu);
|
||
|
|
||
|
#endif
|