home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
594b.lha
/
VectorLibrary
/
Cprg
/
vector.h
< prev
Wrap
C/C++ Source or Header
|
1991-11-09
|
3KB
|
119 lines
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef INTUITION_INTUITION_H
#include <intuition/intuition.h>
#endif
#define VBOB -1
#define VLIN 0
#define END_1 -1
#define END_2 -2
#define LAB -3
#define DBF -4
struct NewVScreen
{
WORD LeftEdge,TopEdge,Width,Height;
WORD Depth;
BYTE DetailPen,BlockPen;
WORD ViewModes;
struct TextAttr *Font;
char *DefaultTitle;
WORD vw_Flags;
WORD vw_LeftEdge,vw_TopEdge,vw_Width,vw_Height;
WORD vw_Depth;
};
struct Joy
{
WORD Mov_Z,Border_Front,Border_Back;
WORD Rot_X,Rot_Y,Rot_Z;
};
struct Object
{
WORD *Point_Data;
WORD *Area_Data;
WORD *Move_Table;
WORD Flags;
WORD Pos_X,Pos_Y,Pos_Z;
WORD Rot_X,Rot_Y,Rot_Z;
};
struct ViewStruct
{
struct Screen *VScreen;
struct ViewPort *VViewPort;
struct RastPort *VRastPort;
};
struct BOB {
WORD Width, Height;
char *Gfx_Data, *Msk_Data;
};
struct BOBList {
WORD Number;
struct BOB BOBs[BOB_NUM];
};
struct VecBase {
LONG pad;
};
/* #pragma-Befehl bereitet Aztec-C 3.6 und früher Schwierigkeiten!! */
#ifdef LATTICE
#pragma libcall VecBase SetVBI 1e 901
#pragma libcall VecBase InitVBOBs 24 a98004
#pragma libcall VecBase OpenVScreen 2a 901
#pragma libcall VecBase CloseVScreen 30 0
#pragma libcall VecBase UseJoy 36 9002
#pragma libcall VecBase DoAnim 3c 901
#pragma libcall VecBase RotateX 42 654321007
#pragma libcall VecBase RotateY 48 654321007
#pragma libcall VecBase RotateZ 4e 654321007
#pragma libcall VecBase FreeVBOBs 54 0
#pragma libcall VecBase AutoScaleOn 5a 001
#pragma libcall VecBase AutoScaleOff 60 0
#pragma libcall VecBase FreeJoy 66 0
#pragma libcall VecBase SetColors 6c 9802
#ifndef NO_PROTOS
long SetVBI (char *);
long InitVBOBs (long, char *, struct BOBList *, long *);
struct ViewStruct *OpenVScreen (struct NewVScreen *);
long CloseVScreen (void);
long UseJoy (long, struct Joy *);
long DoAnim (long *);
long RotateX (long, long, long, long, long, long, long);
long RotateY (long, long, long, long, long, long, long);
long RotateZ (long, long, long, long, long, long, long);
long FreeVBOBs (void);
long AutoScaleOn (long);
long AutoScaleOff (void);
long FreeJoy (void);
long SetColors (struct ViewStruct*, short *);
#endif
#endif
#ifdef AZTEC_C
#pragma amicall(VecBase, 0x1e, SetVBI(a1))
#pragma amicall(VecBase, 0x24, InitVBOBs(d0,a0,a1,a2))
#pragma amicall(VecBase, 0x2a, OpenVScreen(a1))
#pragma amicall(VecBase, 0x30, CloseVScreen())
#pragma amicall(VecBase, 0x36, UseJoy(d0,a1))
#pragma amicall(VecBase, 0x3c, DoAnim(a1))
#pragma amicall(VecBase, 0x42, RotateX(d0,d1,d2,d3,d4,d5,d6))
#pragma amicall(VecBase, 0x48, RotateY(d0,d1,d2,d3,d4,d5,d6))
#pragma amicall(VecBase, 0x4e, RotateZ(d0,d1,d2,d3,d4,d5,d6))
#pragma amicall(VecBase, 0x54, FreeVBOBs())
#pragma amicall(VecBase, 0x5a, AutoScaleOn(d0))
#pragma amicall(VecBase, 0x60, AutoScaleOff())
#pragma amicall(VecBase, 0x66, FreeJoy())
#pragma amicall(VecBase, 0x6c, SetColors(a0,a1))
#endif