From 2ff501924756a00e53e66e969ff3010bff0df759 Mon Sep 17 00:00:00 2001 From: Wanne Date: Thu, 12 Jul 2007 07:46:02 +0000 Subject: [PATCH] Added possibility, that mod makers can add their credits and display them in the credits screen The new file is named "Credits_Mod.edt" and is located in the mod data folder\BinaryData If that file exists, the mod credits are displayed first, second the 1.13 credits and then the sir-tech credits. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@1042 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Credits.cpp | 435 +++++++++++++++++++++++++++++----------------------- 1 file changed, 239 insertions(+), 196 deletions(-) diff --git a/Credits.cpp b/Credits.cpp index 85434083..4234a0d5 100644 --- a/Credits.cpp +++ b/Credits.cpp @@ -89,6 +89,7 @@ enum //#define CRDT_NAME_OF_CREDIT_FILE "BINARYDATA\\Credits.txt" #define CRDT_NAME_OF_CREDIT_FILE "BINARYDATA\\Credits.edt" +#define CRDT_NAME_OF_MOD_CREDIT_FILE "BINARYDATA\\Credits_Mod.edt" #define CREDITS_LINESIZE 80 * 2 @@ -336,6 +337,7 @@ UINT32 guiGapTillReadNextCredit = CRDT_SPACE_BN_NODES; UINT32 guiCurrentCreditRecord = 0; BOOLEAN gfPauseCreditScreen = FALSE; +BOOLEAN gfModCredits = TRUE; HWFILE ghFile; @@ -478,6 +480,9 @@ BOOLEAN EnterCreditsScreen() return( FALSE ); } */ + + gfModCredits = TRUE; + ColorFillVideoSurfaceArea( FRAME_BUFFER, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0 ); VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE; @@ -1110,207 +1115,245 @@ BOOLEAN GetNextCreditFromTextFile() UINT32 uiStartLoc = 0; UINT32 uiFlags=0; - - switch(guiCurrentCreditRecord) + // 1.) MOD Credits + if (gfModCredits == TRUE) { - case 0: - wcscpy(zOriginalString, L"@T,C208,R134,D16,B40,S10,J1,};"); - break; - - case 1: - wcscpy(zOriginalString, pCreditsJA2113[0]); - break; - - case 2: - wcscpy(zOriginalString, L"@};"); - break; - - case 3: - wcscpy(zOriginalString, pCreditsJA2113[1]); - break; - - case 4: - wcscpy(zOriginalString, L"Kaiden"); - break; - - case 5: - wcscpy(zOriginalString, L"Lesh"); - break; - - case 6: - wcscpy(zOriginalString, L"Little Alien"); - break; - - case 7: - wcscpy(zOriginalString, L"Madd Mugsy"); - break; - - case 8: - wcscpy(zOriginalString, L"@};Roman"); - break; - - case 9: - wcscpy(zOriginalString, pCreditsJA2113[2]); - break; - - case 10: - wcscpy(zOriginalString, L"BulletSix"); - break; - - case 11: - wcscpy(zOriginalString, L"Corpse"); - break; - - case 12: - wcscpy(zOriginalString, L"John Wright"); - break; - - case 13: - wcscpy(zOriginalString, L"Khor"); - break; - - case 14: - wcscpy(zOriginalString, L"Lisac"); - break; - - case 15: - wcscpy(zOriginalString, L"Madd Mugsy"); - break; - - case 16: - wcscpy(zOriginalString, L"Marlboro Man"); - break; - - case 17: - wcscpy(zOriginalString, L"Scorpion"); - break; - - case 18: - wcscpy(zOriginalString, L"Starwalker"); - break; - - case 19: - wcscpy(zOriginalString, L"Tbird94lx"); - break; - - case 20: - wcscpy(zOriginalString, L"Terry Thorne"); - break; - - case 21: - wcscpy(zOriginalString, pCreditsJA2113[3]); - break; - - case 22: - wcscpy(zOriginalString, pCreditsJA2113[4]); - break; - - case 23: - wcscpy(zOriginalString, L"Madd Mugsy"); - break; - - case 24: - wcscpy(zOriginalString, L"Starwalker"); - break; - - case 25: - wcscpy(zOriginalString, L"@};Lisac"); - break; - - case 26: - wcscpy(zOriginalString, pCreditsJA2113[5]); - break; - - case 27: - wcscpy(zOriginalString, L"BearPit"); - break; - - case 28: - wcscpy(zOriginalString, L"Bugmonster"); - break; - - case 29: - wcscpy(zOriginalString, L"Captain J"); - break; - - case 30: - wcscpy(zOriginalString, L"DeFrog"); - break; - - case 31: - wcscpy(zOriginalString, L"Farmer Toby"); - break; - - case 32: - wcscpy(zOriginalString, L"Headrock"); - break; - - case 33: - wcscpy(zOriginalString, L"Jones"); - break; - - case 34: - wcscpy(zOriginalString, L"Judge"); - break; - - case 35: - wcscpy(zOriginalString, L"Nitrat"); - break; - - case 36: - wcscpy(zOriginalString, L"Pulmu"); - break; - - case 37: - wcscpy(zOriginalString, L"Realist"); - break; - - case 38: - wcscpy(zOriginalString, L"Scorpion"); - break; - - case 39: - wcscpy(zOriginalString, L"Sergeant Kolja"); - break; - - case 40: - wcscpy(zOriginalString, L"ShadoWarrior"); - break; - - case 41: - wcscpy(zOriginalString, L"Snap"); - break; - - case 42: - wcscpy(zOriginalString, L"TheDrill"); - break; - - case 43: - wcscpy(zOriginalString, L"Wil473"); - break; - - case 44: - wcscpy(zOriginalString, pCreditsJA2113[6]); - break; - - // Additonal lines for free space - case 45: - wcscpy(zOriginalString, L"@T,B40,C208,{; "); - break; - - case 46: - wcscpy(zOriginalString, L"@}; "); - break; - - default: - //Get the current Credit record - uiStartLoc = CREDITS_LINESIZE * (guiCurrentCreditRecord-47); - if( !LoadEncryptedDataFromFile( CRDT_NAME_OF_CREDIT_FILE, zOriginalString, uiStartLoc, CREDITS_LINESIZE ) ) + if (FileExists(CRDT_NAME_OF_MOD_CREDIT_FILE)) + { + uiStartLoc = CREDITS_LINESIZE * (guiCurrentCreditRecord); + if( !LoadEncryptedDataFromFile( CRDT_NAME_OF_MOD_CREDIT_FILE, zOriginalString, uiStartLoc, CREDITS_LINESIZE ) ) { //there are no more credits - return( FALSE ); + gfModCredits = FALSE; + guiCurrentCreditRecord = 0; } + // We have ended the mod credits list + if (strcmp((char *)zOriginalString, "") == 0) + { + gfModCredits = FALSE; + guiCurrentCreditRecord = 0; + } + } + else + { + gfModCredits = FALSE; + guiCurrentCreditRecord = 0; + } + } + + if (gfModCredits == FALSE) + { + switch(guiCurrentCreditRecord) + { + // 2.) 1.13 Credits + case 0: + wcscpy(zOriginalString, L"@T,C208,R134,D16,B40,S10,J1,};"); + break; + + case 1: + wcscpy(zOriginalString, pCreditsJA2113[0]); + break; + + case 2: + wcscpy(zOriginalString, L"@};"); + break; + + case 3: + wcscpy(zOriginalString, pCreditsJA2113[1]); + break; + + case 4: + wcscpy(zOriginalString, L"Bugmonster"); + break; + + case 5: + wcscpy(zOriginalString, L"Kaiden"); + break; + + case 6: + wcscpy(zOriginalString, L"Lesh"); + break; + + case 7: + wcscpy(zOriginalString, L"Little Alien"); + break; + + case 8: + wcscpy(zOriginalString, L"Madd Mugsy"); + break; + + case 9: + wcscpy(zOriginalString, L"Overhaul"); + break; + + case 10: + wcscpy(zOriginalString, L"Roman"); + break; + + case 11: + wcscpy(zOriginalString, L"Sergeant Kolja"); + break; + + case 12: + wcscpy(zOriginalString, L"@};Space Viking"); + break; + + case 13: + wcscpy(zOriginalString, pCreditsJA2113[2]); + break; + + case 14: + wcscpy(zOriginalString, L"BulletSix"); + break; + + case 15: + wcscpy(zOriginalString, L"Corpse"); + break; + + case 16: + wcscpy(zOriginalString, L"John Wright"); + break; + + case 17: + wcscpy(zOriginalString, L"Khor"); + break; + + case 18: + wcscpy(zOriginalString, L"Lisac"); + break; + + case 19: + wcscpy(zOriginalString, L"Madd Mugsy"); + break; + + case 20: + wcscpy(zOriginalString, L"Marlboro Man"); + break; + + case 21: + wcscpy(zOriginalString, L"Scorpion"); + break; + + case 22: + wcscpy(zOriginalString, L"Starwalker"); + break; + + case 23: + wcscpy(zOriginalString, L"Tbird94lx"); + break; + + case 24: + wcscpy(zOriginalString, L"Terry Thorne"); + break; + + case 25: + wcscpy(zOriginalString, pCreditsJA2113[3]); + break; + + case 26: + wcscpy(zOriginalString, pCreditsJA2113[4]); + break; + + case 27: + wcscpy(zOriginalString, L"Madd Mugsy"); + break; + + case 28: + wcscpy(zOriginalString, L"Starwalker"); + break; + + case 29: + wcscpy(zOriginalString, L"@};Lisac"); + break; + + case 30: + wcscpy(zOriginalString, pCreditsJA2113[5]); + break; + + case 31: + wcscpy(zOriginalString, L"BearPit"); + break; + + case 32: + wcscpy(zOriginalString, L"Captain J"); + break; + + case 33: + wcscpy(zOriginalString, L"DeFrog"); + break; + + case 34: + wcscpy(zOriginalString, L"Farmer Toby"); + break; + + case 35: + wcscpy(zOriginalString, L"Headrock"); + break; + + case 36: + wcscpy(zOriginalString, L"Jones"); + break; + + case 37: + wcscpy(zOriginalString, L"Judge"); + break; + + case 38: + wcscpy(zOriginalString, L"Nitrat"); + break; + + case 39: + wcscpy(zOriginalString, L"Pulmu"); + break; + + case 40: + wcscpy(zOriginalString, L"Realist"); + break; + + case 41: + wcscpy(zOriginalString, L"Scorpion"); + break; + + case 42: + wcscpy(zOriginalString, L"ShadoWarrior"); + break; + + case 43: + wcscpy(zOriginalString, L"Snap"); + break; + + case 44: + wcscpy(zOriginalString, L"TheDrill"); + break; + + case 45: + wcscpy(zOriginalString, L"Wil473"); + break; + + case 46: + wcscpy(zOriginalString, pCreditsJA2113[6]); + break; + + // Additonal lines for free space + case 47: + wcscpy(zOriginalString, L"@T,B40,C208,{; "); + break; + + case 48: + wcscpy(zOriginalString, L"@}; "); + break; + + // 3.) Sir-Tech Credits + default: + //Get the current Credit record + uiStartLoc = CREDITS_LINESIZE * (guiCurrentCreditRecord-49); + if( !LoadEncryptedDataFromFile( CRDT_NAME_OF_CREDIT_FILE, zOriginalString, uiStartLoc, CREDITS_LINESIZE ) ) + { + //there are no more credits + return( FALSE ); + } + } } //Increment to the next crdit record