It is currently 22 Nov 2025, 19:22
   
Text Size

2000 cards limit

Discuss Upcoming Releases, Coding New Cards, Etc.
PLEASE DO NOT REPORT BUGS HERE!

Moderators: Aswan jaguar, gmzombie, stassy, BAgate, drool66, CCGHQ Admins

Re: 2000 cards limit

Postby Mok » 29 Nov 2011, 17:54

0rion79 wrote:Mok, may you satisfy my curiosity about a side matter? When you did empower the original game, why did you choose to code the whole 8th edition rather than any other expansion set? :)
I don't remember. Probably because it was new at the time? I wasn't really a big 'real' Magic fan... I had more fun hacking the game than playing it. After years I don't remember most of the rules :P
Mok
Programmer
 
Posts: 163
Joined: 23 Nov 2011, 14:28
Has thanked: 1 time
Been thanked: 61 times

Re: 2000 cards limit

Postby Masaaki » 29 Nov 2011, 18:23

Mok wrote:That's not the problem, the bmp hack is easy to remove (I have added some code that loads images in db from different types of files and it seems to work, I just wanted deck.exe to work again to test db with more cards that magic.exe can accept), but the problem is: if I replace deckdll.dll with a new version, the avatar cards don't show up when the db is started from magic.exe. It seems the new code (manalinkeh.dll? no idea) is modifying something directly and I don't know where to look for the hack. It does not seem to be done inside deckdll.dll, so it must be somewhere else.
The Avatar cards aren't really vital to the game imho. I'm burning to see a 2000+ version of Manalink, and it's no big deal if some of the more recent features are left out. We could try to implement them later or at least create a separate version (including Challenge mode etc.). The big question is if 2000+ can be done and if it's stable.
User avatar
Masaaki
 
Posts: 82
Joined: 20 Jun 2011, 16:09
Has thanked: 41 times
Been thanked: 10 times

Re: 2000 cards limit

Postby 0rion79 » 29 Nov 2011, 18:29

Mok wrote:I don't remember. Probably because it was new at the time? I wasn't really a big 'real' Magic fan... I had more fun hacking the game than playing it. After years I don't remember most of the rules :P
Lol! :) I could never guess that!
User avatar
0rion79
 
Posts: 1520
Joined: 24 Feb 2009, 18:33
Location: Italy
Has thanked: 94 times
Been thanked: 61 times

Re: 2000 cards limit

Postby gmzombie » 29 Nov 2011, 18:45

I dont know if it would help but i have your original modded deck builder that u made to test db's back then. also have alpha patches from before and after lonefoxes if its needed for any info. also the update has skymagic editor that was talked about.
Attachments
20090301.zip
just before the lonefox update but had the extra Manalinkex.dll
(1.22 MiB) Downloaded 269 times
20090315.zip
this is the lonefox update
(810.9 KiB) Downloaded 322 times
modded deck builder.rar
modded deck builder with out card art as it would be about 100mbs
(7.99 MiB) Downloaded 280 times
can I maze of ith your snowstorm?

http://home.comcast.net/~gmzombie/index.html old stuff in here. don't use this stuff right now till I get time to get back into it and readjust.
gmzombie
 
Posts: 857
Joined: 26 Feb 2009, 01:05
Location: Wyoming, Mi
Has thanked: 200 times
Been thanked: 51 times

Re: 2000 cards limit

Postby Mok » 30 Nov 2011, 01:09

Thanks, I'll take a look. Can anyone prepare a .csv file with all coded cards? One with no duplicates (>2000 entries). I could use it for initial testing. Also a question... there are 2 dlls used to include new cards: *eh.dll and *ex.dll. Can you compile both of them? I need to know if they need to be changed too or can just be recompiled after changing a header file or two.
Mok
Programmer
 
Posts: 163
Joined: 23 Nov 2011, 14:28
Has thanked: 1 time
Been thanked: 61 times

Re: 2000 cards limit

Postby gmzombie » 30 Nov 2011, 01:49

here is a zip of the recent dll src that is included in each patch that i think will help with the dlls.
Attachments
src.rar
src files for dlls from 0926 update
(1.37 MiB) Downloaded 269 times
can I maze of ith your snowstorm?

http://home.comcast.net/~gmzombie/index.html old stuff in here. don't use this stuff right now till I get time to get back into it and readjust.
gmzombie
 
Posts: 857
Joined: 26 Feb 2009, 01:05
Location: Wyoming, Mi
Has thanked: 200 times
Been thanked: 51 times

Re: 2000 cards limit

Postby gmzombie » 30 Nov 2011, 02:25

it might take a little time to create a full csv of every card coded. im working on this as we speak though i cant quite remember did someone redo the rest of the original cards? like from legends,arabian nights and so on..i thought someone did but i dont remember the patch. if anybody knows please hit me up with that info..
can I maze of ith your snowstorm?

http://home.comcast.net/~gmzombie/index.html old stuff in here. don't use this stuff right now till I get time to get back into it and readjust.
gmzombie
 
Posts: 857
Joined: 26 Feb 2009, 01:05
Location: Wyoming, Mi
Has thanked: 200 times
Been thanked: 51 times

Re: 2000 cards limit

Postby Mok » 30 Nov 2011, 02:50

gmzombie wrote:i cant quite remember did someone redo the rest of the original cards? like from legends,arabian nights and so on..i thought someone did but i dont remember the patch. if anybody knows please hit me up with that info..
Old cards were removed completely, seriously? Oh well, that's why I somewhat dislike the patching approach in the current version. What I was doing in the past, was working directly in the IDA database, with bigger changes in external file(s). At any point I could dump the big .asm file, than use a crude preprocessor to split the file into smaller chunks (as the assembler I used was very limited in the source size), modify the syntax to be compatible with Tasm and include my external code. Then I simply assembled it to create a new Magic.exe (or any .dll). That way, adding new code was quick and simple, even adding C code seems easy by just adding some globals and linking the compiled objects without so many hacks. Unfortunately I lost the database and interest in the project before talented people showed up to help :( In any case it seems that ManalinkEx.dll is static and ManalinkEh.dll can be recompiled. So I guess I'll have to take a look the the *Ex.dll and see if it requires any direct changes.
Mok
Programmer
 
Posts: 163
Joined: 23 Nov 2011, 14:28
Has thanked: 1 time
Been thanked: 61 times

Re: 2000 cards limit

Postby Masaaki » 30 Nov 2011, 06:11

gmzombie wrote:it might take a little time to create a full csv of every card coded. im working on this as we speak though i cant quite remember did someone redo the rest of the original cards? like from legends,arabian nights and so on..i thought someone did but i dont remember the patch. if anybody knows please hit me up with that info..
Here's the .csv of NewLimited along with a list where you can see which cards have been coded before.
Attachments
SlotsLimited_v2.rar
Overview of NewLimited, colored boxes contain cards coded before
(38.45 KiB) Downloaded 250 times
ManalinkNL.rar
.csv file of NewLimited
(152.1 KiB) Downloaded 270 times
Last edited by Masaaki on 30 Nov 2011, 13:22, edited 1 time in total.
User avatar
Masaaki
 
Posts: 82
Joined: 20 Jun 2011, 16:09
Has thanked: 41 times
Been thanked: 10 times

Re: 2000 cards limit

Postby 0rion79 » 30 Nov 2011, 07:13

Mok wrote:Old cards were removed completely, seriously?
No, Mok: old cards were NOT removed completely: their code is still within the actual game, stored in the dll files, but we had to remove the weakest of them from the "main version" (now called Constructed) to make room for the most modern and powerful cards. In fact, if you try to play Magic using an exe called "Magic Limited", you should find most of the old cards.
Anyway, if we can really break the 2K cards limit with your help, I think it would be a good idea to re-add old cards starting from the "latest version with no removals" leaving them in their original slots: it is known that some of such cards are hardcoded and replacing them with new slots may lead at least to small nuisances.
User avatar
0rion79
 
Posts: 1520
Joined: 24 Feb 2009, 18:33
Location: Italy
Has thanked: 94 times
Been thanked: 61 times

Re: 2000 cards limit

Postby Mok » 30 Nov 2011, 10:58

Can someone prepare modified ManalinkEh.dll (without testing)? I don't have cygwin installed and I'm poor in C so it's better if someone actually working with the files make the changes. _cards_ptr needs to be changed from 0x55d0e0 to 0x73bb00 (simple change in manalink.lds). Hardcoded 2000 cards needs to be gone. All things like "for(i=0;i<2000;i++)" or Ids[2000] etc. The code should use the real number of cards loaded from cards.dat. The value is at 0x7375ac. Also it seems that id 2000 is used as a special card, probably similar things will require empty entries in csv file and so on. (And a nitpick... get_id_by_name? whoa, really I imagine AI is not important but that thing is crazy :P)
Mok
Programmer
 
Posts: 163
Joined: 23 Nov 2011, 14:28
Has thanked: 1 time
Been thanked: 61 times

Re: 2000 cards limit

Postby gmzombie » 30 Nov 2011, 12:57

here is what i have so far i worked on it all last night. I went through and used the program freediff and checked differences from the start of the patches till where i got to was jan1 2010 so im still behind. what i did was to keep the integrity of most cards replaced before 952 the original every time i found a replaced i copied it to another book and waited till i had a full 2000 cards before i added them into the 2000 csv. if any card was replaced it the new one was moved to the end of the csv. while this dosent include any from the limited version yet it will when i do more tonight. Hopefully this can help for the time being.
Attachments
manalink2009full.rar
(103.12 KiB) Downloaded 366 times
can I maze of ith your snowstorm?

http://home.comcast.net/~gmzombie/index.html old stuff in here. don't use this stuff right now till I get time to get back into it and readjust.
gmzombie
 
Posts: 857
Joined: 26 Feb 2009, 01:05
Location: Wyoming, Mi
Has thanked: 200 times
Been thanked: 51 times

Re: 2000 cards limit

Postby Mok » 30 Nov 2011, 13:10

Gargaroz wrote:I got too a question for Mok, but it's unrelated to the 2000 card limit : have you decrypted the "Reserved Infos" field of the editor ? And what is the "Secret byte" ?
I recovered some of my old definitions and just for comparison sake you can take a look... A lot of names are really bad but I never expected them to be used by anyone else :)
Your event_t was for me:
Code: Select all
CP_UNTAP_PHASE   = 1
CP_UPKEEP_PHASE    = 4
CP_PHASE_DRAW  = 0Ah
CP_PHASE_MAIN  = 14h
CP_PHASE_DECLARE_ATTACKERS  = 15h
CP_COMBAT_OPPONENTS_DECLARED  =   1Ah
CP_GET_MAX_HAND_SIZE  =   1Fh
CP_DAMAGE_DEALT    = 21h
CP_PHASE_CLEANUP  = 22h
CP_DAMAGE_PREVENTION  =   25h
CP_REDUCE_DAMAGE  = 26h
CP_RECALC_POWER    = 32h
CP_RECALC_TOUGHNESS  = 33h
CP_RECALC_ABILITIES  = 34h
CP_RECALC_GETDAMAGE  = 35h
CP_RECALC_COLOR    = 36h
CP_ADD_COUNTERSPELL_CHANCE  = 38h
CP_CHECK_CAN_INF_POWER   = 39h
CP_CHECK_CAN_INF_TOUGHNESS  = 3Ah
CP_RECALC_POSSIBLE_P_T_CHANGES   = 3Bh
CP_RECALC_IDinCT  = 3Ch
CP_NEW_TURN  = 6Ah
CP_PLAYCARD_STACK  = 6Ch
CP_ACTIVATE_STACK  = 6Dh
CP_RESOLVE_DAMAGE  = 6Eh
CP_USE_REGENERATION  = 70h
CP_PLAYCARD_RESOLVE  = 71h
CP_ACTIVATE_RESOLVE  = 72h
CP_CHECK_ACTIVATE_POSSIBLE  = 73h
CP_CHECK_PLAY_POSSIBLE   = 74h
CP_BURY_CARD  =   77h
CP_DECLARE_BLOCKERS  = 78h
CP_DECLARE_ATTACKERS  =   79h
CP_CHECK_PROCESS_POSSIBLE  = 7Dh
CP_PROCESS_ACTIVATE  = 7Eh
CP_CALC_MAXMANA    = 7Fh
CP_UNK_80  = 80h
CP_TAP    = 81h
CP_CHECK_CAN_UNTAP  = 82h
CP_UNTAP  = 83h
CP_SET_UNTAP_COST  = 84h
CP_SET_UPKEEP_COST  = 85h
CP_UPKEEP_PAYMENT_FAILED  = 86h
CP_CHECK_UPKEEP_PAYMENT    = 87h
CP_CHECK_UNTAP_PAYMENT   = 88h
CP_FORCE_ATTACK    = 89h
CP_ATTACK_RATING  = 8Ah
CP_BLOCK_RATING    = 8Bh
CP_CHECK_POSSIBLE_ABILITIES  = 8Ch
CP_DISCARD  = 8Dh
CP_UNK_8E  = 8Eh
CP_CHECK_CAN_WASTE_MANA_IN_POOL    = 8Fh
CP_GET_SELECTED_CARD  =   90h
CP_PLAY_ABILITY    = 91h
CP_BEFORE_COMBAT  = 92h
CP_VARIABLE_MANA_SOURCE    = 93h
CP_CARDCONTROLLED  = 94h
CP_DISABLE_ABILITIES  =   0A0h
CP_ENABLE_ABILITIES  = 0A1h
CP_ADDITIONAL_PLAYCOST   = 0A2h
CP_ADDITIONAL_ABILITYCOST  = 0A3h
CP_ADDITIONAL_SELFCOST   = 0A4h
CP_PAY_SELFCOST    = 0A5h
CP_MODIFY_PRODUCED_MANA    = 0A6h
CP_AFTER_DAMAGE    = 0A7h
CP_AI_CALC  = 0C7h
trigger_t:
Code: Select all
TRIGGER_BEGINUPKEEP  = 0C9h
TRIGGER_UPKEEP   = 0CAh
TRIGGER_ENDUPKEEP  = 0CBh
TRIGGER_ENDOFCOMBAT  = 0CCh
TRIGGER_ENDOFTURN  = 0CDh
TRIGGER_DRAWPHASE  = 0CEh
TRIGGER_DRAWCARD  = 0CFh
TRIGGER_CARDDRAWN  = 0D0h
TRIGGER_DISCARDCARD  = 0D1h
TRIGGER_TAPCARD    = 0D2h
TRIGGER_PLAYCARD  = 0D3h
TRIGGER_CARDLEAVINGPLAY    = 0D4h
TRIGGER_CARDTOGRAVEYARD    = 0D5h
TRIGGER_GRAVEYARDORDER   = 0D6h
TRIGGER_DAMAGEDEALING  = 0D7h
TRIGGER_PERMANENTTOHAND    = 0D8h
TRIGGER_CHOOSEATTACKERS    = 0D9h
TRIGGER_CHOOSEBLOCKERS   = 0DAh
TRIGGER_CARDINTOPLAY  =   0DBh
TRIGGER_PAIDATTACK  = 0DCh
TRIGGER_PAIDBLOCK  = 0DDh
TRIGGER_ATTACKSELECTED   = 0DEh
TRIGGER_BLOCKSELECTED  = 0DFh
TRIGGER_GAINLIFE  = 0E0h
TRIGGER_ENDDAMAGEPREVENTION  = 0E1h
TRIGGER_ENDDRAW    = 0E2h
TRIGGER_ENDMAIN    = 0E3h
TRIGGER_ENDDISCARD  = 0E4h
keyword_t:
Code: Select all
ABILITY_SWAMPWALK  = 1
ABILITY_ISLANDWALK  = 2
ABILITY_FORESTWALK  = 4
ABILITY_MOUNTAINWALK  =   8
ABILITY_PLAINSWALK  = 10h
ABILITY_FLYING   = 20h
ABILITY_BANDING    = 40h
ABILITY_TRAMPLE    = 80h
ABILITY_FIRSTSTRIKE  = 100h
ABILITY_REGENERATION  =   200h
ABILITY_WEB  = 400h
ABILITY_PROT_BLACK  = 800h
ABILITY_PROT_BLUE  = 1000h
ABILITY_PROT_GREEN  = 2000h
ABILITY_PROT_RED  = 4000h
ABILITY_PROT_WHITE  = 8000h
ABILITY_PROT_ARTIFACT  = 10000h
ABILITY_PROT_ENCHANTMENT  = 20000h
ABILITY_PROT_INSTANT  =   40000h
ABILITY_PROT_INTERRUPT   = 80000h
ABILITY_PROT_SORCERY  =   100000h
ABILITY_BANDING_WHEN_ATTACKING   = 200000h
ABILITY_TRANSFORMED  = 1000000h
ABILITY_TOUGHNESS_CHANGED  = 2000000h
ABILITY_POWER_CHANGED  = 4000000h
ABILITY_ADDED  = 8000000h
ABILITY_COLOR_CHANGED  = 10000000h
ABILITY_POWERTRAMPLE  =   20000000h
ABILITY_DOUBLESTRIKE  =   40000000h
phase_t:
Code: Select all
PHASE_START  = 0
PHASE_UNTAP  = 1
PHASE_BEGINUPKEEP  = 2
PHASE_UNK_3  = 3
PHASE_UPKEEP  =   4
PHASE_UNK_5  = 5
PHASE_DRAW  = 0Ah
PHASE_MAIN  = 14h
PHASE_DECLARE_ATTACKERS    = 15h
PHASE_DECLARE_ATTACKERS_FASTEFFECTS  = 16h
PHASE_DECLARE_BLOCKERS   = 17h
PHASE_DECLARE_BLOCKERS_FASTEFFECTS  = 18h
PHASE_FIRSTSTRIKE_RESOLUTION  =   19h
PHASE_COMBATDAMAGE_RESOLUTION  = 1Ah
PHASE_COMBATDAMAGE_RESOLUTION2   = 1Bh
PHASE_MAIN_AFTERCOMBAT   = 1Eh
PHASE_DISCARD  = 1Fh
PHASE_CLEANUP2   = 20h
PHASE_UNK_21  =   21h
PHASE_CLEANUP  = 22h
PHASE_DAMAGE_PREVENTION    = 25h
card_instance_t:
Code: Select all
CD   struc ;   (sizeof=0x184)
CD_Counters db ?
CD_Counters_m0m2 db ?
CD_Counters_m1m1 db ?
CD_Counters_m0m1 db ?
CD_DestCard_Card dd ?
CD_FLAGS08 dd ?
CD_SourceCard_Player db   ?
CD_UNUSED0D db ?
CD_Toughness dw   ?
CD_ReceivedDamage dw ?
CD_Additional_Power dw ?
CD_ActivatingTrigger dd   ?
CD_FLAGS18 dd ?
CD_Additional_Toughness   dw ?
CD_Color db ?
CD_LethalAgainstColorCreatures db ?
CD_NewCreatedType_CT_ID   dd ?
CD_OpponentOrBandedAttacker db ?
CD_InitialColor   db ?
CD_Rampage db ?
CD_UNUSED27 db ?
CD_Abilities dd   ?
CD_ManaToUntap_Colorless db ?
CD_ManaToUntap_Black db   ?
CD_ManaToUntap_Blue db ?
CD_ManaToUntap_Green db   ?
CD_ManaToUntap_Red db ?
CD_ManaToUntap_White db   ?
CD_ManaToUntap_Artifact   db ?
CD_ManaToUntap_Unk db ?
CD_Power dw ?
CD_NumberOfTargets db ?
CD_UNK37 db ?
CD_Parameter1 dd ?
CD_CardIDinCT_Parent dd   ?
CD_ColorlessColor_ColorID db ?
CD_BlackColor_ColorID db ?
CD_BlueColor_ColorID db   ?
CD_GreenColor_ColorID db ?
CD_RedColor_ColorID db ?
CD_WhiteColor_ColorID db ?
CD_ArtifactColor_ColorID db ?
CD_UNUSED47 db ?
CD_SourceCard_Card dd ?
CD_Parameter2 dd ?
CD_DestCard_Player db ?
CD_UNK51 db ?
CD_UNK52 db ?
CD_UNK53 db ?
CD_TimeStamp dd   ?
CD_AvailableManaColors db ?
CD_InitialManaColors db   ?
CD_UNK5A db ?
CD_UNK5B db ?
CD_UpkeepFlags dd ?
CD_AttackRating   dd ?
CD_DisplayPicCardID dw ?
CD_DisplayPicNumber dw ?
CD_DeathType db   ?
CD_UNK69 db ?
CD_UNK6A db ?
CD_UNK6B db ?
CD_CardIDinCT dd ?
CD_UNK70 dd ?
CD_TargetCard_Player dd   ?
CD_TargetCard_ID dd ?
CD_TargetCard2_Player dd ?
CD_TargetCard2_ID dd ?
CD_Target3 dd 34 dup(?)
CD_ParentCard_Player dd   ?
CD_ParentCard_Card dd ?
CD_ColorlessLandColor db ?
CD_BlackLandColor db ?
CD_BlueLandColor db ?
CD_GreenLandColor db ?
CD_RedLandColor   db ?
CD_WhiteLandColor db ?
CD_Counters_m2m1 db ?
CD_Counters_p1p2 db ?
CD_UntapFlags dd ?
CD_Counters_p1p1 db ?
CD_Counters_p1p0 db ?
CD_Counters_p0p1 db ?
CD_Counters_p2p2 db ?
CD_UpkeepMana_Colorless   db ?
CD_UpkeepMana_Black db ?
CD_UpkeepMana_Blue db ?
CD_UpkeepMana_Green db ?
CD_UpkeepMana_Red db ?
CD_UpkeepMana_White db ?
CD_UpkeepMana_Artifact db ?
CD_UpkeepMana_Unk db ?
CD_CT_UNK00 db ?
CD_CT_ShortName   db 35 dup(?)
CD_CT_CardID dd   ?
CD_CT_CardType db ?
CD_CT_Family db   ?
CD_CT_Color db ?
CD_CT_ReqColorMana db ?
CD_CT_ReqColorlessMana db ?
CD_CT_CardFlags3 db ?
CD_CT_Power dw ?
CD_CT_Toughness   dw ?
CD_CT_UNUSED32 db ?
CD_CT_UNUSED33 db ?
CD_CT_Code dd ?
CD_CT_Abilities   dd ?
CD_CT_CardFlags2 dd ?
CD_CT_Rarity db   ?
CD_CT_PlayActivatePhases db ?
CD_CT_Expansion   dw ?
CD_CT_StrengthRating dd   ?
CD_CT_Abilities2 dd ?
CD_Abilities2 dd ?
CD_InitialIDinCT dw ?
CD_Subtype1 dw ?
CD_Subtype2 dw ?
CD_Subtype3 dw ?
CD   ends
card_data_t:
Code: Select all
CT struc   ; (sizeof=0x48)
CT_UNK00 db ?
CT_ShortName db   35 dup(?)      ; string(C)
CT_CardID dd ?
CT_CardType db ?         ; enum CardTypes
CT_Family db ?            ; enum FAMILIES
CT_Color db ?            ; enum CTColors
CT_ReqColorMana   db ?
CT_ReqColorlessMana db ?
CT_CardFlags3 db ?
CT_Power dw ?
CT_Toughness dw   ?
CT_UNUSED32 db ?
CT_UNUSED33 db ?
CT_Code   dd ?
CT_Abilities dd   ?         ; enum Abilities
CT_CardFlags2 dd ?         ; enum CTFLAGS2
CT_Rarity db ?
CT_PlayActivatePhases db ?      ; enum ACTPHASES
CT_Expansion dw   ?
CT_StrengthRating dd ?
CardTable ends
card_ptr_t:
Code: Select all
CDAT   struc ;   (sizeof=0x98)
CDAT_ID   dd ?
CDAT_FullName dd ?
CDAT_Name dd ?
CDAT_Expansion dd ?
CDAT_Color dd ?
CDAT_CardType dd ?
CDAT_Subtype dw   ?
CDAT_Subtype2 dw ?
CDAT_TypeText dd ?
CDAT_DB_CardType2 dd ?
CDAT_Rarity dd ?
CDAT_ReqColorlessMana db ?
CDAT_ReqBlackMana db ?
CDAT_ReqBlueMana db ?
CDAT_UNK2B db ?
CDAT_UNK2C db ?
CDAT_ReqGreenMana db ?
CDAT_UNK2E db ?
CDAT_ReqRedMana   db ?
CDAT_ReqWhiteMana db ?
CDAT_UNK31 db 15 dup(?)
CDAT_Artist dd ?
CDAT_NumPictures dd ?
CDAT_UNK48 dd ?
CDAT_AI_Modifiers1 dd ?
CDAT_AI_Modifiers2 dd ?
CDAT_AI_IncPower db ?
CDAT_AI_IncToughness db   ?
CDAT_AI_Power db ?
CDAT_AI_Toughness db ?
CDAT_AI_BaseValue dw ?
CDAT_AI_Dependencies dw   ?
CDAT_AI_SleightColor dd   ?
CDAT_AI_ValueAgainstColor dw ?
CDAT_AI_ValueForColor dw ?
CDAT_AI_ValueCountsAsColor dw ?
CDAT_AI_ValueAgainstLand dw ?
CDAT_AI_ValueForLand dw   ?
CDAT_AI_ValueCountsAsLand dw ?
CDAT_AI_Abilities dd ?
CDAT_ExpRarity dd ?
CDAT_DescText1 dd ?
CDAT_DescText2 dd ?
CDAT_Power dd ?
CDAT_Toughness dd ?
CDAT_NumOfDBAbilities dd ?
CDAT_DBA1 db ?
CDAT_DBA2 db ?
CDAT_DBA3 db ?
CDAT_DBA4 db ?
CDAT_DBA5 db ?
CDAT_DBA6 db ?
CDAT_DBA7 db ?
CDAT_DBA8 db ?
CDAT_UNK90 db ?
CDAT_UNK91 db ?
CDAT_ManaSourceColors db ?
CDAT_Inflatable   db ?
CDAT_AI_HackColor dd ?
CDAT   ends
values of "state" in your card_instance_t:
Code: Select all
; enum CDFLAGS08 (bitfield)
F08_JUSTDRAWN  = 1
F08_INPLAY  = 2
F08_ATTACKING  = 4
F08_BLOCKING  =   8
F08_TAPPED  = 10h
F08_CAST_UNRESOLVED  = 20h
F08_ATTACKED  =   40h
F08_SPELL_CAST   = 80h
F08_PROCESSING   = 100h
F08_ISBLOCKED  = 200h
F08_UNK400  = 400h
F08_UNK800  = 800h
F08_OWNER_PLAYER_2  = 1000h
F08_NOTAPWHENATTACKING   = 2000h
F08_BLOCKED  = 4000h
F08_MUSTATTACK   = 8000h
F08_SICKNESS  =   10000h
F08_JUSTSUMMONED  = 20000h
F08_NOAUTOTAP  = 40000h
F08_UNK80000  =   80000h
F08_NO_MULTI_TARGET  = 100000h
F08_TARGET  = 200000h
F08_POWERSTRUGGLE  = 400000h
F08_PHASED  = 800000h
F08_NOTCRCANATTACK  = 1000000h
F08_NOTCRCANBLOCK  = 2000000h
values of "token_status" in your card_instance_t:
Code: Select all
; enum CDFLAGS18 (bitfield)
F18_HACKED  = 2
F18_SLEIGHTED  = 4
F18_ERASECOMPLETELY  = 8
F18_TOKEN  = 10h
F18_PERMANENT  = 20h
F18_TEMPORARY_CREATURE   = 40h
F18_DYING  = 80h
F18_TIMEWALK  =   100h
F18_WALLCANATTACK  = 800h
F18_FORCECOLOR   = 2000h
F18_BERSERK  = 4000h
F18_CANTATTACK   = 8000h
F18_INVISIBLE_FX  = 10000h
F18_COMBATDAMAGE  = 40000h
F18_TRAMPLEDAMAGE  = 80000h
F18_FIRSTSTRIKEDAMAGE  = 100000h
F18_ISLANDSANCTUARY  = 400000h
F18_CANTREGENERATE  = 800000h
F18_CONTROLLED   = 1000000h
F18_BASICLAND_DEPENDANT    = 2000000h
F18_CANTBEDESTROYED  = 4000000h
F18_SPECIAL_BLOCKER  = 8000000h
F18_NOLEAVEPLAY    = 40000000h
values of "static_ability" in your card_data_t:
Code: Select all
; enum CTFLAGS2   (bitfield)
CTF_ACTIVATE  =   1
CTF_ACTIVATE_INTERRUPT   = 2
CTF_PROTECT  = 4
CTF_INF_POWER  = 8
CTF_INF_TOUGHNESS  = 10h
CTF_COUNTERS  =   20h
CTF_UNK40  = 40h
CTF_UNK80  = 80h
CTF_UNK100  = 100h
CTF_UNK200  = 200h
CTF_UNK400  = 400h
CTF_UNK800  = 800h
CTF_MANASOURCE   = 1000h
CTF_INTERRUPT  = 2000h
CTF_UNK4000  = 4000h
CTF_BECAMECREATURE  = 8000h
CTF_PAID_MANASOURCE  = 10000h
CTF_ACT_USE_X  = 20000h
CTF_MARTYR  = 40000h
CTF_SELECTATTACK  = 80000h
CTF_SELECTBLOCK    = 100000h
CTF_LICH  = 200000h
CTF_PAIDATTACK   = 400000h
CTF_PAIDBLOCK  = 800000h
CTF_FORCEATTACK    = 1000000h
CTF_BEFORECOMBAT  = 2000000h
CTF_DECLAREATTACK  = 4000000h
CTF_FELLWARSTONE  = 8000000h
CTF_CONTROLLED   = 10000000h
CTF_UNK20000000    = 20000000h
CTF_PLAYCOST  =   40000000h
CTF_ABILITYCOST    = 80000000h
Mok
Programmer
 
Posts: 163
Joined: 23 Nov 2011, 14:28
Has thanked: 1 time
Been thanked: 61 times

Re: 2000 cards limit

Postby Mok » 30 Nov 2011, 13:51

gmzombie wrote:here is what i have so far i worked on it all last night. I went through and used the program freediff and checked differences from the start of the patches till where i got to was jan1 2010 so im still behind. what i did was to keep the integrity of most cards replaced before 952 the original every time i found a replaced i copied it to another book and waited till i had a full 2000 cards before i added them into the 2000 csv. if any card was replaced it the new one was moved to the end of the csv. while this dosent include any from the limited version yet it will when i do more tonight. Hopefully this can help for the time being.
The file won't convert to .dat due to some lines being mangled with extra quotes and so on... at least for me.
Mok
Programmer
 
Posts: 163
Joined: 23 Nov 2011, 14:28
Has thanked: 1 time
Been thanked: 61 times

Re: 2000 cards limit

Postby Gargaroz » 30 Nov 2011, 15:13

Mok wrote:And a nitpick... get_id_by_name? whoa, really I imagine AI is not important but that thing is crazy :P)
I think you've misunderstood : that function is vital for us, as now we have 2 main versions (Costructed and Limited) and two "mod" versions (Golden Years and New Limited), and all share the 2000 card limited, so we need that function to know if a specific card "is there" and make all cards works nicely if they're moved from a version to another.
And I don't really see why this will bother the AI at all. For my part, I constantly working on improving the AI of the new cards coded in C.

By the way, thanx a lot for the very useful infos, I think the stuff I requested you is either "CT_CardFlags2 dd" or "CT_PlayActivatePhases" in "card_data_t". What exactly they are for ?
----
- Current / medium term task: adjusting the code for making Misdirection and such usable
- Long term task: inserting all the good stuff I left out from the "Golden Years" mod
Gargaroz
Programmer
 
Posts: 7097
Joined: 06 Nov 2009, 11:11
Has thanked: 82 times
Been thanked: 595 times

PreviousNext

Return to Development

Who is online

Users browsing this forum: No registered users and 9 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 9 users online :: 0 registered, 0 hidden and 9 guests (based on users active over the past 10 minutes)
Most users ever online was 9824 on 10 Nov 2025, 04:33

Users browsing this forum: No registered users and 9 guests

Login Form