Comparing files main.c and d:main.c ****** main.c // when demo segment int GlobalProgramMode, GlobalProgramTimeout; ****** d:main.c /**************************************************************************** prototypes ****************************************************************************/ ****** ****** main.c /**************************************************************************** prototypes ****************************************************************************/ ****** d:main.c int main (void); ****** ****** main.c //int main (void); ****** d:main.c ****** ****** main.c #if (DEMO_SEGMENT_FLAG==1) int main (int argc, char **argv); #else int main (void); #endif ****** d:main.c void InitialiseAll (void); void DatafileSearch (void); void DatafileRead (void); ****** ****** main.c void InitialiseAll (void); void DatafileSearch (void); void DatafileRead (void); void DatafileSortAll (void); void LoadFileFromCdIntoRAM (char *name, unsigned long* address); ****** d:main.c void InitialiseLighting (void); void InitialiseView (void); ****** ****** main.c void InitialiseLighting (void); void InitialiseView (void); ****** d:main.c ****** ****** main.c void InitialiseObjects (void); ****** d:main.c void InitialiseObjects (void); ****** ****** main.c u_long _ramsize = 0x00200000; u_long _stacksize = 0x00004000; ****** d:main.c ****** ****** main.c #if (DEMO_SEGMENT_FLAG==1) int main (int argc, char **argv) #else int main (void) #endif { #if (DEMO_SEGMENT_FLAG==1) GlobalProgramMode = ((int *)argv)[0]; GlobalProgramTimeout = ((int *)argv)[1]; #endif InitialiseAll(); ****** d:main.c int main (void) { InitialiseAll(); ****** ****** main.c ResetCallback(); CdInit(); // TOTAL FAILURE UNDER DEV_KIT WITH LIB.34; // keeps printing Cd Opening in endless loop ResetGraph(0); ****** d:main.c ResetCallback(); CdInit(); ResetGraph(0); ****** ****** main.c HERE; ****** d:main.c ****** ****** main.c #if (DEMO_SEGMENT_FLAG==1) // READING DATA FILES FROM CD INTO RAM ****** d:main.c #if 0 // READING DATA FILES FROM CD INTO RAM DatafileSearch(); DatafileRead(); #endif ****** ****** main.c /* OLD: lib40 DatafileSearch(); DatafileRead();*/ DatafileSortAll(); #endif ****** d:main.c PadInit(0); // sort out standard controller pads InitialiseRandomNumbers(); // seed random number generator #if (DEVELOPMENT_ENVIRONMENT==YAROZE) HERE; #endif ****** ****** main.c PadInit(0); // sort out standard controller pads InitialiseRandomNumbers(); // seed random number generator ****** d:main.c CompactDiscTrackNumber = 1; CompactDiscVolumeSetting = 127; for (i = 0; i < NUMBER_CD_TRACKS; i++) CompactDiscTrackList[i] = i+1; CompactDiscTrackList[NUMBER_CD_TRACKS-1] = 0; #if 1 // REMOVED FOR DEMO DISC VERSION ****** ****** main.c #if (DEVELOPMENT_ENVIRONMENT==YAROZE) HERE; #endif ****** d:main.c #if (DEVELOPMENT_ENVIRONMENT==YAROZE) { CompactDiscMusicPlayFlag = TRUE; SsSetSerialVol(SS_CD, 127, 127); SsSetSerialAttr(SS_CD, SS_REV, SS_SOFF); SsSetSerialAttr(SS_CD, SS_MIX, SS_SON); CdPlay(2, CompactDiscTrackList, 0); // first track on disc } #else { CompactDiscMusicPlayFlag = FALSE; } #endif ****** ****** main.c CompactDiscTrackNumber = 1; CompactDiscVolumeSetting = 127; for (i = 0; i < NUMBER_CD_TRACKS; i++) CompactDiscTrackList[i] = i+1; CompactDiscTrackList[NUMBER_CD_TRACKS-1] = 0; #if 0 // REMOVED FOR DEMO DISC VERSION (libcd.34) ****** d:main.c #endif CompactDiscMusicPlayFlag = FALSE; InitialiseSound(); ****** ****** main.c #if (DEVELOPMENT_ENVIRONMENT==YAROZE) { CompactDiscMusicPlayFlag = TRUE; SsSetSerialVol(SS_CD, 127, 127); SsSetSerialAttr(SS_CD, SS_REV, SS_SOFF); SsSetSerialAttr(SS_CD, SS_MIX, SS_SON); CdPlay(2, CompactDiscTrackList, 0); // first track on disc } #else { CompactDiscMusicPlayFlag = FALSE; } #endif ****** d:main.c #if (DEVELOPMENT_ENVIRONMENT==YAROZE) HERE; #endif ****** ****** main.c #endif CompactDiscMusicPlayFlag = FALSE; InitialiseSound(); ****** d:main.c InitProfiler2(); ScreenResolution = HI_RES; ****** ****** main.c InitProfiler2(); ScreenResolution = HI_RES; #if (DEVELOPMENT_ENVIRONMENT==YAROZE) HERE; #endif ****** d:main.c #if (DEVELOPMENT_ENVIRONMENT==DEV_KIT) // until get SCART for devkit // need PAL for colour SetVideoMode(MODE_PAL); #endif ****** ****** main.c #if (DEVELOPMENT_ENVIRONMENT==DEV_KIT) // until get SCART for devkit // need PAL for colour SetVideoMode(MODE_PAL); #endif SortVideoMode(); // auto-detect, set dependent parameters ****** d:main.c SortVideoMode(); // auto-detect, set dependent parameters ****** ****** main.c #endif InitFntPrints(); #if (DEVELOPMENT_ENVIRONMENT==YAROZE) HERE; #endif ****** d:main.c #endif #if 0 // sort basic text printing switch(ScreenResolution) { case LOW_RES: FntLoad(960, 256); FntOpen(-40, -40, 256, 200, 0, 512); break; case HI_RES: FntLoad(960, 256); FntOpen(120, 20, 512, 400, 0, 512); break; default: assert(FALSE); } #endif ****** ****** main.c #if 0 // not when debugging, GDB handles printfs badly PrintDataTypeSizes(); #endif ****** d:main.c InitFntPrints(); #if (DEVELOPMENT_ENVIRONMENT==YAROZE) HERE; #endif ****** ****** main.c //InitialiseGlobalFlyingModel(); ****** d:main.c #if 0 // not when debugging, GDB handles printfs badly PrintDataTypeSizes(); #endif //InitialiseGlobalFlyingModel(); ****** ****** main.c #if (DEMO_SEGMENT_FLAG==1) // section for reading files from CD into main RAM ****** d:main.c #if 1 // section for reading files from CD into main RAM ****** ****** main.c #define NUMBER_FILES 11 ****** d:main.c #if 0 // OLD: too many files, too long to load #define NUMBER_FILES 81 ****** ****** main.c static FILE_INFO DataFiles[NUMBER_FILES] = { {"\\CUBE.TMD;1", (void *)CUBE_MODEL_ADDRESS, 0 }, {"\\THESHIP.TMD;1", (void *)SHIP_MODEL_ADDRESS, 0 }, {"\\SHIP2.TMD;1", (void *)SHIP_2_MODEL_ADDRESS, 0 }, {"\\SHIP4_5.TMD;1", (void *)SHIP_3_MODEL_ADDRESS, 0 }, {"\\TUNNEL1.VH;1", (void *)VH0_ADDRESS, 0 }, {"\\TUNNEL1.VB;1", (void *)VB0_ADDRESS, 0 }, {"\\NETYAR2.VH;1", (void *)YAROZE_VH_ADDRESS, 0 }, {"\\NETYAR2.VB;1", (void *)YAROZE_VB_ADDRESS, 0 }, {"\\INTRO4.TIM;1", (void *)INTRO_TEXTURE_ADDRESS, 0 }, {"\\NY_TITL3.TIM;1", (void *)YAROZE_TEXTURE_ADDRESS, 0 }, {"\\BETWEEN.DAT;1", (void *)ASCII_TEXTURE_ADDRESS, 0 } }; ****** d:main.c static FILE_INFO DataFiles[NUMBER_FILES] = { {"\\DATA4\\CUBE.TMD;1", (void *)CUBE_MODEL_ADDRESS, 0 }, {"\\DATA4\\THESHIP.TMD;1", (void *)SHIP_MODEL_ADDRESS, 0 }, {"\\DATA4\\SHIP2.TMD;1", (void *)SHIP_2_MODEL_ADDRESS, 0 }, {"\\DATA4\\SHIP4_5.TMD;1", (void *)SHIP_3_MODEL_ADDRESS, 0 }, {"\\DATA4\\TUNNEL1.VH;1", (void *)VH0_ADDRESS, 0 }, {"\\DATA4\\TUNNEL1.VB;1", (void *)VB0_ADDRESS, 0 }, {"\\DATA4\\NETYAR2.VH;1", (void *)YAROZE_VH_ADDRESS, 0 }, {"\\DATA4\\NETYAR2.VB;1", (void *)YAROZE_VB_ADDRESS, 0 }, {"\\DATA3\\WAVE09.TIM;1", (void *)SIMPLE_BLUE_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\SWIRL_PP.TIM;1", (void *)NUMBER_1_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\SWIRL_RG.TIM;1", (void *)NUMBER_2_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\TILECUBE.TIM;1", (void *)NUMBER_3_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\WATER1.TIM;1", (void *)NUMBER_4_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\RIBBON.TIM;1", (void *)NUMBER_5_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\SPHERES.TIM;1", (void *)NUMBER_6_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\SWIRL_BR.TIM;1", (void *)NUMBER_7_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\SPECT2.TIM;1", (void *)SPECTRUM_2_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\SPECT3.TIM;1", (void *)SPECTRUM_3_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\PANEL2.TIM;1", (void *)PANEL_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\WAVE11.TIM;1", (void *)WAVE_16_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\WATER3.TIM;1", (void *)NUMBER_9_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\PINKFLAM.TIM;1", (void *)NUMBER_10_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\PURP_WEB.TIM;1", (void *)NUMBER_11_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\PURPLE1.TIM;1", (void *)NUMBER_12_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\PURPLE3.TIM;1", (void *)NUMBER_13_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\RED1.TIM;1", (void *)NUMBER_18_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\PEACH.TIM;1", (void *)NUMBER_20_TEXTURE_ADDRESS, 0 }, {"\\DATA3\\WAVE15.TIM;1", (void *)WAVE_15_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\FOO15.TIM;1", (void *)BAR_RED_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\TILE5.TIM;1", (void *)TILE_FIVE_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\CIRCLE.TIM;1", (void *)CIRCLE_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\FOO10.TIM;1", (void *)BAR_SPECTRUM_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\FOO11.TIM;1", (void *)SMOOTH_SPECTRUM_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\FOO12.TIM;1", (void *)SMOOTH_RED_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\ARROW1.TIM;1", (void *)ARROW_TEXTURE_1_ADDRESS, 0 }, {"\\DATA2\\ARROW2.TIM;1", (void *)ARROW_TEXTURE_2_ADDRESS, 0 }, {"\\DATA2\\CHEVRON.TIM;1", (void *)CHEVRON_TEXTURE_1_ADDRESS, 0 }, {"\\DATA2\\ASCII5.TIM;1", (void *)ASCII_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\BLACKWAV.TIM;1", (void *)NUMBER_26_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\BLUESQ.TIM;1", (void *)NUMBER_27_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\BLUISH.TIM;1", (void *)NUMBER_28_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\BLUISH2.TIM;1", (void *)NUMBER_29_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\BLUISH3.TIM;1", (void *)NUMBER_19_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\BUCKYBAL.TIM;1", (void *)NUMBER_21_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\BG_ATOMS.TIM;1", (void *)NUMBER_22_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\BUTTON.TIM;1", (void *)NUMBER_23_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\CHAINS.TIM;1", (void *)NUMBER_24_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\DBTILE.TIM;1", (void *)NUMBER_51_TEXTURE_ADDRESS, 0 }, {"\\DATA2\\DIRTCHEK.TIM;1", (void *)NUMBER_52_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE3.TIM;1", (void *)NUMBER_30_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE4.TIM;1", (void *)NUMBER_31_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE5.TIM;1", (void *)NUMBER_32_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE6.TIM;1", (void *)NUMBER_33_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE7.TIM;1", (void *)NUMBER_34_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE8.TIM;1", (void *)NUMBER_35_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE11.TIM;1", (void *)NUMBER_36_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE13.TIM;1", (void *)NUMBER_37_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE14.TIM;1", (void *)NUMBER_38_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE16.TIM;1", (void *)NUMBER_39_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE18.TIM;1", (void *)NUMBER_40_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE19.TIM;1", (void *)NUMBER_41_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE21.TIM;1", (void *)NUMBER_42_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE22.TIM;1", (void *)NUMBER_43_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE23.TIM;1", (void *)NUMBER_44_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE25.TIM;1", (void *)NUMBER_45_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE68.TIM;1", (void *)NUMBER_46_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE71.TIM;1", (void *)NUMBER_47_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE84.TIM;1", (void *)NUMBER_48_TEXTURE_ADDRESS, 0 }, {"\\DATA1\\IMAGE111.TIM;1", (void *)NUMBER_49_TEXTURE_ADDRESS, 0 }, {"\\FIRE04.TIM;1", (void *)FIRE_TEXTURE_ADDRESS, 0 }, {"\\HORI_BIG.TIM;1", (void *)HORIZONTAL_LARGE_TEXTURE_ADDRESS, 0 }, {"\\FIRE_BG3.TIM;1", (void *)FIRE_BACKGROUND_TEXTURE_ADDRESS, 0 }, {"\\YELLOWSQ.TIM;1", (void *)NUMBER_8_TEXTURE_ADDRESS, 0 }, {"\\FIERY.TIM;1", (void *)NUMBER_14_TEXTURE_ADDRESS, 0 }, {"\\GREENY.TIM;1", (void *)NUMBER_15_TEXTURE_ADDRESS, 0 }, {"\\KNOTWORK.TIM;1", (void *)NUMBER_16_TEXTURE_ADDRESS, 0 }, {"\\LAVA1.TIM;1", (void *)NUMBER_17_TEXTURE_ADDRESS, 0 }, {"\\FACES.TIM;1", (void *)NUMBER_25_TEXTURE_ADDRESS, 0 }, {"\\ODEN.TIM;1", (void *)NUMBER_50_TEXTURE_ADDRESS, 0 }, {"\\INTRO4.TIM;1", (void *)INTRO_TEXTURE_ADDRESS, 0 }, {"\\NY_TITL3.TIM;1", (void *)YAROZE_TEXTURE_ADDRESS, 0 } }; ****** ****** main.c ****** d:main.c #endif ****** ****** main.c ****** d:main.c ****** ****** main.c #if 0 // NOT WITH BOOTSTRAP // this CD-file-access code taken straight from other samples ****** d:main.c #if 1 // NEW version using between.dat #define NUMBER_FILES 11 typedef struct { char fname[64]; void *addr; CdlFILE finfo; } FILE_INFO; // this generated from combination of files and // NOT in order: they are re-ordered to make loading faster static FILE_INFO DataFiles[NUMBER_FILES] = { {"\\CUBE.TMD;1", (void *)CUBE_MODEL_ADDRESS, 0 }, {"\\THESHIP.TMD;1", (void *)SHIP_MODEL_ADDRESS, 0 }, {"\\SHIP2.TMD;1", (void *)SHIP_2_MODEL_ADDRESS, 0 }, {"\\SHIP4_5.TMD;1", (void *)SHIP_3_MODEL_ADDRESS, 0 }, {"\\TUNNEL1.VH;1", (void *)VH0_ADDRESS, 0 }, {"\\TUNNEL1.VB;1", (void *)VB0_ADDRESS, 0 }, {"\\NETYAR2.VH;1", (void *)YAROZE_VH_ADDRESS, 0 }, {"\\NETYAR2.VB;1", (void *)YAROZE_VB_ADDRESS, 0 }, {"\\INTRO4.TIM;1", (void *)INTRO_TEXTURE_ADDRESS, 0 }, {"\\NY_TITL3.TIM;1", (void *)YAROZE_TEXTURE_ADDRESS, 0 }, {"\\BETWEEN.DAT;1", (void *)ASCII_TEXTURE_ADDRESS, 0 } }; #endif // this CD-file-access code taken straight from other samples ****** ****** main.c } #endif // NOT WITH BOOTSTRAP ****** d:main.c } ****** ****** main.c ****** d:main.c #endif ****** ****** main.c void DatafileSortAll (void) { int i; for (i = 0; i < NUMBER_FILES; i++) { LoadFileFromCdIntoRAM( DataFiles[i].fname, DataFiles[i].addr); } } ****** d:main.c ****** ****** main.c ****** d:main.c void InitialiseLighting (void) { // three flat light sources TheLights[0].vx = ONE; TheLights[0].vy = 0; TheLights[0].vz = 0; TheLights[0].r = 128; TheLights[0].g = 0; TheLights[0].b = 0; GsSetFlatLight(0, &TheLights[0]); TheLights[1].vx = 0; TheLights[1].vy = ONE; TheLights[1].vz = 0; TheLights[1].r = 0; TheLights[1].g = 128; TheLights[1].b = 0; GsSetFlatLight(1, &TheLights[1]); TheLights[2].vx = 0; TheLights[2].vy = 0; TheLights[2].vz = ONE; TheLights[2].r = 0; TheLights[2].g = 0; TheLights[2].b = 128; GsSetFlatLight(2, &TheLights[2]); // background lighting GsSetAmbient(ONE/4, ONE/4, ONE/4); // distance colour blending TheFogging.dqa = -15000; TheFogging.dqb = 5120*5120; TheFogging.rfc = 0; TheFogging.gfc = 0; TheFogging.bfc = 0; GsSetFogParam( &TheFogging); ****** ****** main.c ****** d:main.c // overall lighting conditions OverallLightMode = 0; // NO fogging yet GsSetLightMode(OverallLightMode); } ****** ****** main.c #define FORM1_SIZE 2048 /* Size of an XA mode 1 form 1 sector. */ /* This macro gives the number of sectors a file of length x bytes takes up. */ #define Sectors(x) (((x)+FORM1_SIZE-1)/FORM1_SIZE) ****** d:main.c ****** ****** main.c void LoadFileFromCdIntoRAM (char *name, unsigned long* address) { CdlFILE fp; u_long addr; int numSectors; /* Number of sectors the file takes up. */ int mode = 0; /* The mode word for CdRead. */ u_long size; if (!CdSearchFile(&fp, name)) /* Find the stream file on CD. */ { printf("Couldn't find %s.\n",name); } size = fp.size; /* Get the file length. */ /* Call Cd control (blocking) to seek to the logical file position. */ /* If the CD doesn't acknowledge, return 0 for an error code. */ if (!CdControlB(CdlSeekL,(unsigned char *)&fp.pos, 0)) { printf("TROUBLE\n"); HERE; } /* Work out the number of sectors from the length of the file on CD. */ numSectors = Sectors(size); /* Make up the CD mode word (just double speed flag). */ mode |= CdlModeSpeed; /* Call CdRead() to read the sectors into the buffer at double speed. */ /* If the CD doesn't respond, then return 0. */ if(!CdRead(numSectors, (unsigned long *)address, mode)) { printf("MORE TROUBLE\n"); HERE; } /* Block until the CD has finished reading (ie make the call block). */ while (CdReadSync(1,0) > 0 ); VSync(3); } ****** d:main.c void SetThreeWhiteLights (void) { // all white, pointing along different cardinal axes TheLights[0].vx = ONE; TheLights[0].vy = 0; TheLights[0].vz = 0; TheLights[0].r = 64; TheLights[0].g = 64; TheLights[0].b = 64; GsSetFlatLight(0, &TheLights[0]); TheLights[1].vx = 0; TheLights[1].vy = ONE; TheLights[1].vz = 0; TheLights[1].r = 64; TheLights[1].g = 64; TheLights[1].b = 64; GsSetFlatLight(1, &TheLights[1]); TheLights[2].vx = 0; TheLights[2].vy = 0; TheLights[2].vz = ONE; TheLights[2].r = 64; TheLights[2].g = 64; TheLights[2].b = 64; GsSetFlatLight(2, &TheLights[2]); } ****** ****** main.c #endif ****** d:main.c void SetTheAbsenceOfFlatLight (void) { // all give zero illumination, pointing along different cardinal axes TheLights[0].vx = ONE; TheLights[0].vy = 0; TheLights[0].vz = 0; TheLights[0].r = 0; TheLights[0].g = 0; TheLights[0].b = 0; GsSetFlatLight(0, &TheLights[0]); TheLights[1].vx = 0; TheLights[1].vy = ONE; TheLights[1].vz = 0; TheLights[1].r = 0; TheLights[1].g = 0; TheLights[1].b = 0; GsSetFlatLight(1, &TheLights[1]); TheLights[2].vx = 0; TheLights[2].vy = 0; TheLights[2].vz = ONE; TheLights[2].r = 0; TheLights[2].g = 0; TheLights[2].b = 0; GsSetFlatLight(2, &TheLights[2]); } ****** ****** main.c void InitialiseLighting (void) { // three flat light sources TheLights[0].vx = ONE; TheLights[0].vy = 0; TheLights[0].vz = 0; ****** d:main.c void SetThreeColouredLights (void) { // one red, another green, another blue TheLights[0].vx = ONE; TheLights[0].vy = 0; TheLights[0].vz = 0; ****** ****** main.c GsSetFlatLight(2, &TheLights[2]); // background lighting GsSetAmbient(ONE/4, ONE/4, ONE/4); // distance colour blending TheFogging.dqa = -15000; TheFogging.dqb = 5120*5120; TheFogging.rfc = 0; TheFogging.gfc = 0; TheFogging.bfc = 0; GsSetFogParam( &TheFogging); ****** d:main.c GsSetFlatLight(2, &TheLights[2]); } ****** ****** main.c // overall lighting conditions OverallLightMode = 0; // NO fogging yet GsSetLightMode(OverallLightMode); } ****** d:main.c ****** ****** main.c void SetThreeWhiteLights (void) { // all white, pointing along different cardinal axes TheLights[0].vx = ONE; TheLights[0].vy = 0; TheLights[0].vz = 0; TheLights[0].r = 64; TheLights[0].g = 64; TheLights[0].b = 64; GsSetFlatLight(0, &TheLights[0]); TheLights[1].vx = 0; TheLights[1].vy = ONE; TheLights[1].vz = 0; TheLights[1].r = 64; TheLights[1].g = 64; TheLights[1].b = 64; GsSetFlatLight(1, &TheLights[1]); TheLights[2].vx = 0; TheLights[2].vy = 0; TheLights[2].vz = ONE; TheLights[2].r = 64; TheLights[2].g = 64; TheLights[2].b = 64; GsSetFlatLight(2, &TheLights[2]); } ****** d:main.c void InitialiseView (void) { // set viewpoint to screen distance ProjectionDistance = FIXED_PROJECTION_DISTANCE; GsSetProjection(ProjectionDistance); ****** ****** main.c void SetTheAbsenceOfFlatLight (void) { // all give zero illumination, pointing along different cardinal axes TheLights[0].vx = ONE; TheLights[0].vy = 0; TheLights[0].vz = 0; TheLights[0].r = 0; TheLights[0].g = 0; TheLights[0].b = 0; GsSetFlatLight(0, &TheLights[0]); TheLights[1].vx = 0; TheLights[1].vy = ONE; TheLights[1].vz = 0; TheLights[1].r = 0; TheLights[1].g = 0; TheLights[1].b = 0; GsSetFlatLight(1, &TheLights[1]); TheLights[2].vx = 0; TheLights[2].vy = 0; TheLights[2].vz = ONE; TheLights[2].r = 0; TheLights[2].g = 0; TheLights[2].b = 0; GsSetFlatLight(2, &TheLights[2]); } ****** d:main.c ****** ****** main.c void SetThreeColouredLights (void) { // one red, another green, another blue TheLights[0].vx = ONE; TheLights[0].vy = 0; TheLights[0].vz = 0; TheLights[0].r = 128; TheLights[0].g = 0; TheLights[0].b = 0; GsSetFlatLight(0, &TheLights[0]); TheLights[1].vx = 0; TheLights[1].vy = ONE; TheLights[1].vz = 0; TheLights[1].r = 0; TheLights[1].g = 128; TheLights[1].b = 0; GsSetFlatLight(1, &TheLights[1]); TheLights[2].vx = 0; TheLights[2].vy = 0; TheLights[2].vz = ONE; TheLights[2].r = 0; TheLights[2].g = 0; TheLights[2].b = 128; GsSetFlatLight(2, &TheLights[2]); } void InitialiseView (void) { // set viewpoint to screen distance ProjectionDistance = FIXED_PROJECTION_DISTANCE; GsSetProjection(ProjectionDistance); // set parameters of the various view modes ****** d:main.c // set parameters of the various view modes ****** ****** main.c //HERE; /// texture for square model ****** d:main.c /// texture for square model ****** ****** main.c //HERE; ProperInitialiseTexture(BAR_SPECTRUM_TEXTURE_ADDRESS, &BarSpectrumTextureInfo); ****** d:main.c ProperInitialiseTexture(BAR_SPECTRUM_TEXTURE_ADDRESS, &BarSpectrumTextureInfo); ****** ****** main.c //HERE; ProperInitialiseTexture(ARROW_TEXTURE_1_ADDRESS, &Arrow1TextureInfo); ****** d:main.c ProperInitialiseTexture(ARROW_TEXTURE_1_ADDRESS, &Arrow1TextureInfo); ****** ****** main.c //HERE; ProperInitialiseTexture(CIRCLE_TEXTURE_ADDRESS, &CircleTextureInfo); ****** d:main.c ProperInitialiseTexture(CIRCLE_TEXTURE_ADDRESS, &CircleTextureInfo); ****** ****** main.c //HERE; ProperInitialiseTexture(HORIZONTAL_LARGE_TEXTURE_ADDRESS, &HorizontalLargeTextureInfo); ****** d:main.c ProperInitialiseTexture(HORIZONTAL_LARGE_TEXTURE_ADDRESS, &HorizontalLargeTextureInfo); ****** ****** main.c //HERE; ****** d:main.c ****** ****** main.c ****** d:main.c #if 0 // OLD: have just had to move these ForceTextureIntoPosition (WAVE_16_TEXTURE_ADDRESS, &DynamicAreaTwoTextureInfo, 832, 448, 0, 0); ForceTextureIntoPosition (WAVE_16_TEXTURE_ADDRESS, &DynamicAreaThreeTextureInfo, 896, 448, 0, 0); ForceTextureIntoPosition (WAVE_16_TEXTURE_ADDRESS, &DynamicAreaFourTextureInfo, 960, 448, 0, 0); #endif ****** ****** main.c //HERE; ****** d:main.c ****** ****** main.c //HERE; ProperInitialiseTexture(FIRE_TEXTURE_ADDRESS, &FireTextureInfo); ****** d:main.c ProperInitialiseTexture(FIRE_TEXTURE_ADDRESS, &FireTextureInfo); ****** ****** main.c //HERE; ProperInitialiseTexture(NUMBER_1_TEXTURE_ADDRESS, &Number1TextureInfo); ****** d:main.c ProperInitialiseTexture(NUMBER_1_TEXTURE_ADDRESS, &Number1TextureInfo); ****** ****** main.c //HERE; ProperInitialiseTexture(WAVE_15_TEXTURE_ADDRESS, &Wave15ImageInfo); ****** d:main.c ProperInitialiseTexture(WAVE_15_TEXTURE_ADDRESS, &Wave15ImageInfo); ****** ****** main.c //HERE; ****** d:main.c ****** ****** main.c //HERE; ****** d:main.c ****** ****** main.c { #if 0 ResetGraph(0); ****** d:main.c { ResetGraph(0); ****** ****** main.c StopCallback(); #endif StopCallback(); PadStop(); ResetGraph(3); } ****** d:main.c StopCallback(); } ******