Quake3World.com https://www.quake3world.com/forum/ |
|
Quake 3 Productid Question https://www.quake3world.com/forum/viewtopic.php?f=16&t=42241 |
Page 1 of 1 |
Author: | LobNob9 [ 12-12-2009 10:12 PM ] |
Post subject: | Quake 3 Productid Question |
I'm glad I found this forum and I hope some of you good dudes can help. I'm new to Q3's source code and I've been going through it and I find in files.c in the .exe code some interesting code about how it reads the text string in the productid.txt file. Here's the snippet in the code and I was wondering if someone who understands how this works can explain it to me. I'd like to be able to to create my own productid.txt for my mod with my own text string. I understand the numbers are XOR'd I believe from that snippet of code and the numbers represent each letter in the productid.txt file. So please how does this work and where do you start? How does it generate 220 for the encryption that represents a capital T in the productid.txt file and so on? Any help is appreciated. Thanks. Code: char *productId; if ( !fs_restrict->integer ) { // look for the full game id FS_ReadFile( "productid.txt", (void **)&productId ); if ( productId ) { // check against the hardcoded string int seed, i; seed = 5000; for ( i = 0 ; i < sizeof( fs_scrambledProductId ) ; i++ ) { if ( ( fs_scrambledProductId[i] ^ (seed&255) ) != productId[i] ) { break; } seed = (69069 * seed + 1); } FS_FreeFile( productId ); if ( i == sizeof( fs_scrambledProductId ) ) { return; // no restrictions } Com_Error( ERR_FATAL, "Invalid product identification" ); } } static byte fs_scrambledProductId[152] = { 220, 129, 255, 108, 244, 163, 171, 55, 133, 65, 199, 36, 140, 222, 53, 99, 65, 171, 175, 232, 236, 193, 210, 250, 169, 104, 231, 231, 21, 201, 170, 208, 135, 175, 130, 136, 85, 215, 71, 23, 96, 32, 96, 83, 44, 240, 219, 138, 184, 215, 73, 27, 196, 247, 55, 139, 148, 68, 78, 203, 213, 238, 139, 23, 45, 205, 118, 186, 236, 230, 231, 107, 212, 1, 10, 98, 30, 20, 116, 180, 216, 248, 166, 35, 45, 22, 215, 229, 35, 116, 250, 167, 117, 3, 57, 55, 201, 229, 218, 222, 128, 12, 141, 149, 32, 110, 168, 215, 184, 53, 31, 147, 62, 12, 138, 67, 132, 54, 125, 6, 221, 148, 140, 4, 21, 44, 198, 3, 126, 12, 100, 236, 61, 42, 44, 251, 15, 135, 14, 134, 89, 92, 177, 246, 152, 106, 124, 78, 118, 80, 28, 42 |
Author: | ^misantropia^ [ 12-13-2009 04:32 AM ] |
Post subject: | Re: Quake 3 Productid Question |
Why would you need this? If you are making a standalone mod, you should base it on ioquake3. And ioquake3 doesn't check the product ID. |
Author: | LobNob9 [ 12-13-2009 05:57 PM ] |
Post subject: | Re: Quake 3 Productid Question |
Well the point of the original post was to try and get help with understanding how this works. No to scrap my work and go with ioquake3. I just want an understanding of how it works mainly. Thanks. |
Page 1 of 1 | All times are UTC - 8 hours |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |