Commit Graph

101 Commits

Author SHA1 Message Date
wagic.the.homebrew@gmail.com
bd6c1a2407 Erwan
- fix compilation issues introduced in r1727
2010-01-18 12:43:30 +00:00
wagic.the.homebrew@gmail.com
866f1c3e1c Erwan
-fix issue 170 (testsuite + library shuffle)
2010-01-15 14:12:57 +00:00
wagic.the.homebrew@gmail.com
0d2c6cf3e5 Erwan
- Adding external rules mechanism. It is very crude for the moment, but I hope it will grow. Have a look at Rules/mtg.txt for basic usage
2009-12-06 04:47:29 +00:00
wagic.the.homebrew@gmail.com
f6a75a0e43 Erwan
- Fix issue 194
- Attempt at doing basic AI tests
2009-11-15 09:31:33 +00:00
wagic.the.homebrew@gmail.com
24ea5b7b6a Erwan
- Fix issue 42
2009-10-25 08:55:56 +00:00
wagic.the.homebrew@gmail.com
83bc12a275 Erwan
- Fix issue 102 (Rampage not working correctly)
2009-10-20 13:24:12 +00:00
wagic.the.homebrew@gmail.com
0bf83b6bf5 Erwan
- fixed a bug with Flagstones of Trokair. There was no easy fix (cloned objects deleting stuff from their parents...) and I ended up using a "garbage collect at end of turn" technique the way I did with the ActionStack. As a result, the memory print of a turn will become bigger, and even more bugs might occur at the end of a turn... I'm ready to discuss this, although I think it's the best solution (in terms of result/amount of work) given the way abilities work right now
- Test suite now gives the number of failed/success at the end of the tests
2009-09-26 14:25:29 +00:00
wagic.the.homebrew@gmail.com
6df665c340 Erwan
-check athat act of treason works correctly
-Fixed emblem of warmind
-removed incorrect cards ("When this enters the battlefield, target..." please see http://wololo.net/forum/viewtopic.php?f=6&t=669
2009-09-26 04:10:29 +00:00
wagic.the.homebrew@gmail.com
71d4818646 Erwan
- Fix issue #16 (testsuite segfaults if file does not exist)
- Fix issue #37 (Normal Combat Damage is not dealt to creatures when the AI attacks)
- TestSuite now has an "AI" mode (see test/manual/p2_attacks.txt)
2009-09-22 06:15:32 +00:00
wagic.jeck
8ba34dafca Jeck - WResourceManager / Cache should now be leak free. Demo mode still crashes around EnstackBlocker. 2009-09-18 01:20:46 +00:00
wagic.jeck
d55fc91112 Jeck - [Requires JGE rebuild] Extensive cache improvements.
* Numerous cache fixes, reduced filesystem access.
 * Cache fails very gracefully. 
 * Cache is now a templated class, with individual caches per data-type.
 * Much easier to extend.
 * Extensively debugged. Try compiling with -DDEBUG_CACHE.
 * Caches limits can be set on a per-item basis.
 * hgeParticleSystemInfo are now cached, mana particles now fall back to defaults.
 * Samples are not cached, but track filesystem misses using the cache backbone. 
 * Avatars are cached. Default baka avatar is now baka.jpg, to prevent collision with player.

A note on the retrieval types: 
  RETRIEVE_MANAGE puts a resource into a seperate, managed resource list.
    Managed resources are guarenteed valid for the lifetime of the program. 
    Retrieving a managed quad promotes the associated texture to managed. Don't do that by mistake.
    Calls to Resources.Refresh() will attempt to reload managed resources in place.

  RETRIVE_LOCK (and by extension, RETRIEVE_VRAM), returns a resource after locking it.
    A resource may have many locks, and remains in cache until they are all released. 
    If the resource is managed, it returns it unmodified.

A note on quads:
Unlike all other RetrieveWhatever() functions, the default behavior for RetrieveQuad is RETRIEVE_LOCK. Worse, Release(JQuad*) is slow, and will /always/ release one lock from the associated texture.   

There's a long and complicated explanation for this, involving support for live relinking of textures to existing quads, but basically what it means is that we only use RetrieveQuad for quads we intend to store and later Release(). If a temporary quad is needed, the preferred method is to use NEW JQuad* and SAFE_DELETE with RetrieveTexture(). RetrieveTempQuad is also provided, but is only guaranteed until the next call to the cache.

Note that RetrieveCard has none of these problems.
2009-09-14 08:28:49 +00:00
wagic.the.homebrew@gmail.com
7ce2c563e1 Erwan
- Fixed empty ActionStack "interrupt" messages
- If no attackers are declared, go straight to Combat end phase
- Once First strike damage is declared, attacking player needs to "actively" request a next phase event to go to the next damage step
- Second Damage step is called "Combat Damage (2)"
- UserRequestNextPhase is to be used knowing that it might not succeed
- Step change for GuiCombat is now computed at GameObserver::nextGamePhase

Note: Combat damage to creatures is not assigned when AI attacks. As this seems to be a problem with the previous SVN version, I4m still committing this change
2009-09-13 12:42:18 +00:00
jean.chalard
5b473a1505 J :
* Fix almost all tests.
* This version "nearly" works.
2009-09-07 14:37:32 +00:00
wagic.the.homebrew@gmail.com
d73951ecfc Erwan
-some bug fixes (test suite)
2009-09-06 02:50:54 +00:00
wagic.the.homebrew@gmail.com
c1accf5c6e Erwan
- fix global effect cards (wrath of god) VS protection 
- Removed/updated a few debug outputs
2009-09-06 01:11:51 +00:00
wagic.jeck
f220d2e9b9 Jeck - Cache and resource manager merged, streamlined.
This is pretty major, so there'll probably be something wrong with it... even though I did spend a few hours looking.
NOTES:
 * If you've Retrieved it, don't delete it--- Use resources.Release(Whatever). 
    Textures automatically release subordinate quads.
 * Most of the time, use resources.RetrieveQuad to grab a quad. Should handle everything for you.
    RetrieveQuad will load the required texture, if needed.
    Only managed resources have a resource name ("back", "simon", etc). 
    Managed resources can be retrieved with GetTexture/GetQuad/GetWhatever.
    Non managed quads lookup by position/dimensions, defaulting to the whole texture.
 * Use resources.RetrieveTexture only when you need to do something special to it. 
    Calling retrieve texture with RETRIEVE_MANAGE will permanently add a texture to the manager
    RETRIEVE_LOCK and RETRIEVE_VRAM will lock a texture. It will not leave the cache until
    Release(JTexture*) is called, or as a last resort during cache overflow.
 * Try to only store (as a class member) pointers to textures retrieved with RETRIEVE_MANAGE. 
    All others may become invalid, although locked textures do have a high degree of stability. It's
    pretty safe to store a locked texture if you're not going to load much between uses.

There's a lot going on here, so I might have missed something... but it runs through the test suite alright.

TODO: 
 * When called without any arguments, RetrieveQuad sometimes leaves a thin border around the image. 
    This can be bypassed by specifying a quad one or two pixels less than the image size. Why?
 * I've had a crash while runing the Demo mode, something to do with receiveEventMinus? 
    This hasn't exactly reproduced on a clean SVN copy, (being a hang, rather than a crash) so 
    I've probably done something to worsen the problem somehow? I'll look into it tomorrow.
 * Clean up lock/unlock system, memory usage. Streamline interface, consider phasing out calls using GetWhatever() format.
2009-09-03 09:28:16 +00:00
wagic.the.homebrew@gmail.com
0454fb20ec Erwan
- fixed textures cache bug
- fixed one card in TMP
2009-08-31 12:22:43 +00:00
wagic.the.homebrew@gmail.com
0dfa3f2e16 Erwan
-fixesRockslide Elemental, Welkin Hawk
-Added messages for Manapool updates
-Cleaned up ManaProducer code
2009-08-26 14:30:24 +00:00
wagic.the.homebrew@gmail.com
fb0dccb7f3 Erwan
-added possibility for tester to take control of the test suite
2009-08-25 11:55:07 +00:00
wagic.the.homebrew@gmail.com
f988ff04cb Erwan
- Test suite "fixed". Tests involving combat (almost all of them) fail. Also 4 tests generate segfaults
2009-08-22 23:57:14 +00:00
jean.chalard
3349f974f1 J :
* New interface.
* This breaks a lot of things. It is not feature-equivalent. It
  probably doesn't compile under windows and doesn't work on PSP.
* Damage is not resolved any more. This will have to be fixed.
* Blockers can't be ordered any more. This will have to be fixed.
* A lot of new art is included.
2009-08-22 05:59:43 +00:00
wagic.the.homebrew@gmail.com
8681987f89 Erwan
- fix PSP Compilation issue
- Stillmoon cavalier (and other "until end of turn" activated abilities) bug fix
- attempt at fixing multi abilities that work "only from time to time"
2009-07-15 14:06:47 +00:00
wagic.the.homebrew@gmail.com
ab445c9758 Erwan
- Added a few cards
- Creature attacks, blocks, is re-ordered in blocking list events
2009-07-12 12:27:55 +00:00
wagic.the.homebrew@gmail.com
c8333e76b1 Erwan
- Updated Parser mechanism. Right now this doesn't change functionalities much, but should be more readable, and make it easier to code some new abilities in the future
- Fixed regenerate, broken with r532
- Death Ward now works
- I think "&&" now works with all abilities, needs to be tested...
2009-07-11 15:59:51 +00:00
wagic.the.homebrew@gmail.com
11af671496 Erwan
- Added "Evil twin" Mode to unlock
2009-07-05 10:08:13 +00:00
wagic.the.homebrew@gmail.com
d52f06d98d Erwan
- Magic 2010 - blockers ordering
- Fixed a memory leak introduced in a previous revision (foreach)
2009-07-04 04:15:05 +00:00
wagic.the.homebrew@gmail.com
53b1b5e9ec Erwan
- Magic 2010 - inplay becomes Battlefield. Wagic is still compatible with both, but try to use "battlefield" from now on. For example moveTo(battlefield) instead of moveTo(inPlay)
- Magic 2010 - "Removed from game" becomes "Exile". Wagic is still compatible with both, but try to use "exile" from now on. For example moveTo(exile) instead of moveTo(removedFromGame)
- Magic 2010 - "End of turn" step becomes "end" step. Wagic is still compatible with both, but try to use "end" from now on. for example: "@next end" rather than "@next endofturn" (not sure this is more clear than before, but at least it's consistent with the rules)
2009-06-17 13:11:45 +00:00
wagic.the.homebrew@gmail.com
75720b9459 Erwan
-Fix for sacrifice costs
2009-06-09 14:07:07 +00:00
wagic.the.homebrew@gmail.com
ec27c29c2b Erwan
-fixed bug with Sphinx Sumoner (was an interface issue, not a an issue with the card itself)
2009-06-02 13:44:02 +00:00
wagic.the.homebrew@gmail.com
1a21ca454a Erwan
- Fixed Damage All (Ashen Firebeast/ See test)
- Fixed Momir crash if no card with corresponding mana cost exists
2009-05-28 09:42:52 +00:00
wagic.the.homebrew@gmail.com
42e6521155 Erwan
- Added "stack" as a zone in the perser
- Added "fizzle" keyword in the parser for counterspells
2009-05-11 13:23:09 +00:00
wagic.the.homebrew@gmail.com
e9190ff19f Erwan
- fix with Momir+ */* creatures
2009-04-06 12:19:18 +00:00
wagic.the.homebrew@gmail.com
a68478dcca Erwan
- (failed) Attempt to locate a bug with Keldon Warlord in momir
2009-04-05 10:56:46 +00:00
wagic.the.homebrew@gmail.com
5952b382a2 Erwan
-Fixed bug with fountain of youth
-New alternate format for decks
2009-04-02 12:50:18 +00:00
wagic.the.homebrew
f87c703866 Erwan
- Added WEvent class, allows to send events to abilities
- Cards that change zones now becomes new objects (as specified in the Comprehensive rules). This should allow to fix lots of stupid bugs in the near future, but probably brings loads of new issues :(
2009-02-16 13:46:14 +00:00
wagic.the.homebrew
6d1d5d751a Erwan
- new Ability : ALifeGiver (bottle gnomes)
- Added a few cards from Tempest
- Hybrid mana fix for hybrid mana involving uncolored mana costs (see tests/generic/hybridmana2.txt - spectral possession)
- Fixed bugs with targetting for TargetAbilities
- Fixed multiple sacrifice abilities cost (Siege gang commander, see tests)
- Fixed a small font issue
2009-02-11 09:38:20 +00:00
wagic.the.homebrew
6ea40147a3 Erwan
- Fixed a bug with Composite golem (and summoning sickness for Mana abilities in general)
- Improved test suite speed
2009-02-06 16:06:37 +00:00
wagic.the.homebrew
9e314720e9 Erwan
- Parser: Added possibility to add multiple abilities for one cost, using keyword && (see Ardakar wastes in 10E). Currently only works with mana and damage
- Added a dozen new cards
- Improved testing suite : new keyword "choice" to select an item in the abilities popup menu
2009-01-18 06:42:59 +00:00
jean.chalard
82d8503ed4 J :
* Fix a warning on linux & PSP.
2009-01-17 02:27:08 +00:00
wagic.the.homebrew
1251ef0096 Erwan
- Prevent TestSuite from crashing, by not showing big cards during the test suite
- Updated font size in game, to be readable
- WARNING!!! One test (brass man) not working anymore !!! High priority
2009-01-17 01:46:11 +00:00
wagic.the.homebrew
731f925800 Erwan - Added a check for DOS Files on linux systems in Test suite 2009-01-11 04:20:04 +00:00
jean.chalard
7f97862f5e J :
* Fix a couple warnings and a bug.
2009-01-06 13:22:29 +00:00
wagic.the.homebrew
f8c96737e8 Erwan - updated VC++ project, fixed a compilation bug with TestSuite 2009-01-06 13:20:13 +00:00
jean.chalard
3e9ff2b580 J :
* Change the name of debug.h into config.h and use the new RESPATH define.
2008-12-25 16:28:03 +00:00
wagic.the.homebrew
b89c4522de Erwan
- display the thumbnail as a "shadow" over the text version of the card if the big picture is not available
- fixed a bug with circles of protection, although graphically it is difficult to understand what's going on when using those cards
- fixed a bug with a card in Ice age
2008-12-06 12:41:23 +00:00
wagic.the.homebrew
c50ea49e74 Erwan
- Adding new icons from J
- fixed a bug with Zombie Master (for real this time, I swear !)
- The AI should play Wrath of god in a more "clever" way
2008-11-16 10:37:13 +00:00
jean.chalard
c97dd1f260 J :
* Remove ^M's.
* Re-indent automatically.
* Remove whitespace at the end of lines.
2008-11-12 13:45:42 +00:00
jean.chalard
98d8f8c833 J :
* Fix a few warnings.
2008-11-10 14:52:52 +00:00
wagic.the.homebrew
c72fbbd20c Erwan
- the testsuite now outputs an HTML result file with colors
- hopefully speed improvements for the game on PSP (needs testing on the actual device)
2008-11-10 14:38:30 +00:00
wagic.the.homebrew
01d2110e8d Erwan
- Added the possibility to narrow a spell/ability target according to color,tapped status, attacker/blocker, abilities...
- Changed the games phase system to become a phaseRing. This allows to add cards that have an impact on the phases, such as stasis
- Added a few cards
- Fixed a (windows) bug in gatherer tool
- Adding stdint.h for VC++ (see wikipedia->stdint.h)
- deleting the compiled PSP lib to avoid confusion. People who work from the sourcehave to compile the lib by themselves.
2008-11-09 04:28:03 +00:00