From 349de34106279d0df551b0ea035ac22635cd5711 Mon Sep 17 00:00:00 2001 From: "wagic.the.homebrew" Date: Wed, 19 Nov 2008 12:21:23 +0000 Subject: [PATCH] Erwan - Fixed MP3 play bug on the psp. MP3 files need to have NO Id3v2 tag, or they won't play. Also, volume control is broken - added dt to moving W's easter egg movement. - Added fullscreen for windows version - other stuff ? --- JGE/Makefile.3xx | 4 +- JGE/include/JAudio.h | 10 +- JGE/include/JMP3.h | 59 ++ JGE/include/JSoundSystem.h | 5 +- JGE/include/JTypes.h | 1 + JGE/lib/psp/libhgetools.a | Bin 34884 -> 34460 bytes JGE/lib/psp/libjinput.a | Bin 54356 -> 55820 bytes JGE/lib/win/jge_debug.lib | Bin 4942538 -> 4943938 bytes JGE/libhgetools.a | Bin 34884 -> 34460 bytes JGE/libjinput.a | Bin 56564 -> 55820 bytes JGE/src/JAudio.cpp | 141 +-- JGE/src/JMP3.cpp | 233 +++++ JGE/src/JSfx.cpp | 57 +- JGE/src/win/JRenderer_Win.cpp | 9 +- JGE/src/win/JSoundSystem_Win.cpp | 3 + JGE/src/winmain.cpp | 31 +- projects/mtg/Makefile.3xx | 2 +- projects/mtg/bin/Res/settings/options.txt | 100 +- projects/mtg/bin/Res/settings/prices.dat | 184 ++-- projects/mtg/include/GameApp.h | 1 + projects/mtg/include/GameStateDeckViewer.h | 15 +- projects/mtg/include/GameStateMenu.h | 47 +- projects/mtg/include/debug.h | 2 + projects/mtg/src/GameApp.cpp | 2 + projects/mtg/src/GameStateDuel.cpp | 11 +- .../mtg/tools/gatherer/gatherer-builder.py | 376 +++---- projects/mtg/tools/gatherer/mtgCommon.py | 989 +++++++++--------- 27 files changed, 1270 insertions(+), 1012 deletions(-) create mode 100644 JGE/include/JMP3.h create mode 100644 JGE/src/JMP3.cpp diff --git a/JGE/Makefile.3xx b/JGE/Makefile.3xx index 5e4ee10e5..65c9b4bed 100644 --- a/JGE/Makefile.3xx +++ b/JGE/Makefile.3xx @@ -12,7 +12,7 @@ OBJS = src/JApp.o src/JGBKFont.o \ src/tinyxml/tinystr.o src/tinyxml/tinyxml.o \ src/tinyxml/tinyxmlparser.o src/tinyxml/tinyxmlerror.o \ src/main.o src/vram.o \ - src/JAudio.o src/JCooleyesMP3.o \ + src/JAudio.o src/JMP3.o \ src/decoder_prx.o \ src/Encoding.o src/JTTFont.o \ src/JMD2Model.o src/JOBJModel.o \ @@ -23,7 +23,7 @@ LIBDIR = lib/psp CFLAGS = -O2 -G0 -Wall -DDEVHOOK -DPSPFW3XX -LIBS = -lgif -lfreetype -ljpeg -lpng -lz -lmikmod -lpsppower -lpspmpeg -lpspaudiocodec -lpspaudiolib -lpspaudio -lpspgum -lpspgu -lpsprtc -lm -lstdc++ +LIBS = -lgif -lfreetype -ljpeg -lpng -lz -lmikmod -lpsppower -lpspmpeg -lpspaudiocodec -lpspaudiolib -lpspaudio -lpspmp3 -lpspgum -lpspgu -lpsprtc -lm -lstdc++ include $(PSPSDK)/lib/build.mak diff --git a/JGE/include/JAudio.h b/JGE/include/JAudio.h index e01159abc..4530b0c62 100644 --- a/JGE/include/JAudio.h +++ b/JGE/include/JAudio.h @@ -73,15 +73,15 @@ void setChannelFlag(int channel, int flag); #define SAMPLE_PER_FRAME 1152 #define MAX_MP3_FILE 2 -class JCooleyesMP3; +class JMP3; -void PlayMP3(JCooleyesMP3 *mp3, bool looping = false); +void PlayMP3(JMP3 *mp3, bool looping = false); void StopMP3(); -void ResumeMP3(); -bool InitMP3Decoder(); +void ResumeMP3(JMP3 *mp3); + void ReleaseMP3Decoder(); void MP3AudioOutCallback(void* buf, unsigned int length, void *userdata); - +int decodeThread2(SceSize args, void *argp); extern bool g_MP3DecoderOK; #endif diff --git a/JGE/include/JMP3.h b/JGE/include/JMP3.h new file mode 100644 index 000000000..307de54a9 --- /dev/null +++ b/JGE/include/JMP3.h @@ -0,0 +1,59 @@ +//------------------------------------------------------------------------------------- +// +// JGE is a hardware accelerated 2D game SDK for PSP/Windows. +// +// Licensed under the BSD license, see LICENSE in JGE root for details. +// +// Copyright (c) 2007 James Hui (a.k.a. Dr.Watson) +// Copyright (c) 2008 Alexander Berl +// Copyright (c) 2008 WilLoW :--) +// +//------------------------------------------------------------------------------------- + +#ifndef _JMP3_ +#define _JMP3_ + +#include + + + + +class JMP3 +{ +protected: + static bool loadModules(); + int m_volume; + int m_samplesPlayed; + int m_inBufferSize, m_outBufferSize; + char m_inBuffer[16*1024]; // ? + short m_outBuffer[16*(1152/2)]; //? + int m_numChannels; + int m_samplingRate; + bool m_loop; + int m_lastDecoded; + int m_playTime; +public: + int m_paused; + int m_channel; + int m_mp3Handle; + int m_fileHandle; + static JMP3* mInstance; + JMP3(const std::string& filename, int inBufferSize= 16*1024, int outBufferSize =16*(1152/2)); + ~JMP3(); + static void init(); + bool fillBuffers(); + bool load(const std::string& filename, int inBufferSize, int outBufferSize); + bool unload(); + bool update(); + bool play(); + bool pause(); + bool setLoop(bool loop); + int setVolume(int volume); + int playTime() const; + int playTimeMinutes(); + int playTimeSeconds(); + +}; + +#endif + diff --git a/JGE/include/JSoundSystem.h b/JGE/include/JSoundSystem.h index 40b5055a5..67e8a1907 100644 --- a/JGE/include/JSoundSystem.h +++ b/JGE/include/JSoundSystem.h @@ -36,7 +36,7 @@ #include #include "JAudio.h" - #include "JCooleyesMP3.h" + #include "JMP3.h" #endif @@ -47,11 +47,12 @@ class JMusic public: JMusic(); ~JMusic(); + void Update(); #if defined (WIN32) || defined (LINUX) FSOUND_SAMPLE *mTrack; // MP3 needed to be of "sample" type for FMOD, FMUSIC_MODULE is for MODs #else - JCooleyesMP3* mTrack; + JMP3* mTrack; #endif }; diff --git a/JGE/include/JTypes.h b/JGE/include/JTypes.h index 328b05407..9ea9c5780 100644 --- a/JGE/include/JTypes.h +++ b/JGE/include/JTypes.h @@ -60,6 +60,7 @@ #define SCREEN_WIDTH_F 480.0f #define SCREEN_HEIGHT_F 272.0f + #ifdef WIN32 // #define DEFAULT_BLEND BLEND_DEFAULT // #define BLEND_OPTION_ADD BLEND_COLORADD diff --git a/JGE/lib/psp/libhgetools.a b/JGE/lib/psp/libhgetools.a index 82fba304964ab55acaffec9c767fe3d99f29068e..bde95543a8aeaf9c212adf8b4b287d70b8a8b79e 100644 GIT binary patch literal 34460 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%0DS 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 diff --git a/JGE/lib/psp/libjinput.a b/JGE/lib/psp/libjinput.a index 31e635ebd6c6f4935faa6a2b8d02c85f84378d15..f032874915b5a9a9d2e7ca1e14a6d5e774558f28 100644 GIT binary patch literal 55820 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 Ld3#W&?1=vdqc;1T diff --git a/JGE/libhgetools.a b/JGE/libhgetools.a index c64593d97518986ac017729a1e1ed2c82a88017a..bde95543a8aeaf9c212adf8b4b287d70b8a8b79e 100644 GIT binary patch literal 34460 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%0DS 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 IzNGm70gDzR>i_@% diff --git a/JGE/src/JAudio.cpp b/JGE/src/JAudio.cpp index 94fa4f126..3133375e0 100644 --- a/JGE/src/JAudio.cpp +++ b/JGE/src/JAudio.cpp @@ -16,7 +16,7 @@ #include "../include/JGE.h" #include "../include/JAudio.h" -#include "../include/JCooleyesMP3.h" +#include "../include/JMP3.h" #include "../include/JFileSystem.h" #include "../include/decoder_prx.h" @@ -29,7 +29,7 @@ short g_DecodedDataOutputBuffer[SAMPLE_PER_FRAME<<2] __attribute__((aligned(64)) bool g_MP3DecoderOK = false; bool g_GotEDRAM; -JCooleyesMP3* g_CurrentMP3; +JMP3* g_CurrentMP3; ////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// @@ -38,7 +38,7 @@ WAVDATA currentWav[NUMBER_WAV_CHANNELS]; // /////////////////////////////////////////////////////////////////// -char loadWaveData(WAVDATA* p_wav, char* fileName, char memLoad) // WAVE¼ÓÔØ, memLoad-ÊÇ·ñ¼ÓÔØÖÁÄÚ´æ +char loadWaveData(WAVDATA* p_wav, char* fileName, char memLoad) // WAVE¼ÓÔØ, memLoad-ÊÇ·ñ¼ÓÔØÖÁÄÚ´E { JFileSystem* fileSystem = JFileSystem::GetInstance(); @@ -172,7 +172,7 @@ void releaseWaveData(WAVDATA* p_wav) // WAVE } /////////////////////////////////////////////////////////////////// -void audioOutCallback(int channel, void* buf, unsigned int length) // ¸÷ͨµÀ»Øµ÷ +void audioOutCallback(int channel, void* buf, unsigned int length) // ¸÷ͨµÀ»ØµE { WAVDATA* p_wav = NULL; memset(buf, 0, 4096); @@ -387,122 +387,67 @@ void audioInit() // memset(¤tWav[i], 0, sizeof(WAVDATA)); p_currentWav[i] = NULL; } - pspAudioInit(); - pspAudioSetChannelCallback(0, audioOutCallback_0, NULL); - pspAudioSetChannelCallback(1, audioOutCallback_1, NULL); - pspAudioSetChannelCallback(2, audioOutCallback_2, NULL); - //pspAudioSetChannelCallback(3, audioOutCallback_3, NULL); - - pspAudioSetChannelCallback(3, MP3AudioOutCallback, NULL); - InitMP3Decoder(); + JMP3::init(); } void audioDestroy() { - ReleaseMP3Decoder(); - pspAudioEnd(); -} - - -////////////////////////////////////////////////////////////////////////// -void MP3AudioOutCallback(void* buf, unsigned int length, void *userdata) -{ - - // PSP_NUM_AUDIO_SAMPLES is 1024, 16bit samples (short), 2 channels for stereo sound - memset(buf, 0, PSP_NUM_AUDIO_SAMPLES<<2); - - if (g_CurrentMP3 != NULL) - g_CurrentMP3->FeedAudioData(buf, length); } + +int mp3thread = 0; + ////////////////////////////////////////////////////////////////////////// -void PlayMP3(JCooleyesMP3 *mp3, bool looping) +void PlayMP3(JMP3 *mp3, bool looping) { - if (g_MP3DecoderOK) - { - g_CurrentMP3 = mp3; - mp3->InitBuffers(g_MP3CodecBuffer, g_DecoderBuffer, g_DecodedDataOutputBuffer); - mp3->Play(looping); - } + if (mp3thread) StopMP3(); + JMP3::mInstance = mp3; + mp3->setLoop(looping); + mp3->play(); + mp3thread = sceKernelCreateThread("decodeThread2", decodeThread2, 0x12, 0xFA0, 0, 0); + printf("thread id : %i\n", mp3thread); + sceKernelStartThread(mp3thread, 0, NULL); } ////////////////////////////////////////////////////////////////////////// void StopMP3() { - if (g_CurrentMP3 != NULL) - { - g_CurrentMP3->Stop(); - } + printf("stop 1\n"); + JMP3 * mp3 = JMP3::mInstance; + printf("stop 2\n"); + if (mp3){ + printf("stop 3\n"); + mp3->pause(); + printf("stop 4\n"); + sceKernelWaitThreadEnd(mp3thread, NULL); + printf("stop 5\n"); + sceKernelDeleteThread(mp3thread); + printf("stop 6\n"); + mp3->unload(); + printf("stop 7\n"); + JMP3::mInstance = NULL; + mp3thread = 0; + } + printf("stop 8\n"); } ////////////////////////////////////////////////////////////////////////// -void ResumeMP3() +void ResumeMP3(JMP3 * mp3) { - if (g_CurrentMP3 != NULL) - { - g_CurrentMP3->Resume(); - } + mp3->play(); } -////////////////////////////////////////////////////////////////////////// -bool InitMP3Decoder() -{ - int result; - -// if (sceKernelDevkitVersion() == 0x01050001) -// { -// LoadStartModule("flash0:/kd/me_for_vsh.prx", PSP_MEMORY_PARTITION_KERNEL); -// LoadStartModule("flash0:/kd/audiocodec.prx", PSP_MEMORY_PARTITION_KERNEL); -// } -// else -// { -// sceUtilityLoadAvModule(PSP_AV_MODULE_AVCODEC); -// } - -// result = pspSdkLoadStartModule("flash0:/kd/me_for_vsh.prx", PSP_MEMORY_PARTITION_KERNEL); -// result = pspSdkLoadStartModule("flash0:/kd/videocodec.prx", PSP_MEMORY_PARTITION_KERNEL); -// result = pspSdkLoadStartModule("flash0:/kd/audiocodec.prx", PSP_MEMORY_PARTITION_KERNEL); -// result = pspSdkLoadStartModule("flash0:/kd/mpegbase.prx", PSP_MEMORY_PARTITION_KERNEL); -// result = pspSdkLoadStartModule("flash0:/kd/mpeg_vsh.prx", PSP_MEMORY_PARTITION_USER); -// -// pspSdkFixupImports(result); - - prx_static_init(); - - sceMpegInit(); - - memset(g_MP3CodecBuffer, 0, sizeof(g_MP3CodecBuffer)); - - if ( sceAudiocodecCheckNeedMem(g_MP3CodecBuffer, 0x1002) < 0 ) - return false; - - if ( sceAudiocodecGetEDRAM(g_MP3CodecBuffer, 0x1002) < 0 ) - return false; - - g_GotEDRAM = true; - - if ( sceAudiocodecInit(g_MP3CodecBuffer, 0x1002) < 0 ) - return false; - - g_MP3DecoderOK = true; - - return true; - -} - - - -////////////////////////////////////////////////////////////////////////// -void ReleaseMP3Decoder() -{ - if ( g_GotEDRAM ) - sceAudiocodecReleaseEDRAM(g_MP3CodecBuffer); - -} - +int decodeThread2(SceSize args, void *argp){ + JMP3 * mp3 = NULL; + while((mp3 = JMP3::mInstance) && !mp3->m_paused){ + mp3->update(); + //sceKernelDelayThread(10000); + } + return 0; +} \ No newline at end of file diff --git a/JGE/src/JMP3.cpp b/JGE/src/JMP3.cpp new file mode 100644 index 000000000..f9695b418 --- /dev/null +++ b/JGE/src/JMP3.cpp @@ -0,0 +1,233 @@ +#include +#include +#include +#include +#include +#include + +#include "../include/JAudio.h" +#include "../include/JFileSystem.h" +#include "../include/JMP3.h" + + +JMP3* JMP3::mInstance = NULL; + + + +void JMP3::init() { + loadModules(); +} + +JMP3::JMP3(const std::string& filename, int inBufferSize, int outBufferSize) : + m_volume(PSP_AUDIO_VOLUME_MAX), m_paused(true), m_samplesPlayed(0) { + load(filename, inBufferSize,outBufferSize); +} + +JMP3::~JMP3() { + unload(); +} + +bool JMP3::loadModules() { + int loadAvCodec = sceUtilityLoadModule(PSP_MODULE_AV_AVCODEC); + if (loadAvCodec < 0) { + return false; + } + + int loadMp3 = sceUtilityLoadModule(PSP_MODULE_AV_MP3); + if (loadMp3 < 0) { + return false; + } + + return true; +} + +bool JMP3::fillBuffers() { + SceUChar8* dest; + SceInt32 length; + SceInt32 pos; + + int ret = sceMp3GetInfoToAddStreamData(m_mp3Handle, &dest, &length, &pos); + if (ret < 0) + return false; + + if (sceIoLseek32(m_fileHandle, pos, SEEK_SET) < 0) { + return false; + } + + int readLength = sceIoRead(m_fileHandle, dest, length); + if (readLength < 0) + return false; + + ret = sceMp3NotifyAddStreamData(m_mp3Handle, readLength); + if (ret < 0) + return false; + + return true; +} + +bool JMP3::load(const std::string& filename, int inBufferSize, int outBufferSize) { + printf("load\n"); + m_inBufferSize = inBufferSize; + printf("1\n"); + //m_inBuffer = new char[m_inBufferSize]; + //if (!m_inBuffer) + // return false; + + m_outBufferSize = outBufferSize; + printf("2\n"); + //m_outBuffer = new short[outBufferSize]; + //if (!m_outBuffer) + // return false; + + printf("3:%s\n",filename.c_str()); + m_fileHandle = sceIoOpen(filename.c_str(), PSP_O_RDONLY, 0777); + if (m_fileHandle < 0) + return false; + + printf("4\n"); + int ret = sceMp3InitResource(); + if (ret < 0) + return false; + + SceMp3InitArg initArgs; + + int fileSize = sceIoLseek32(m_fileHandle, 0, SEEK_END); + sceIoLseek32(m_fileHandle, 0, SEEK_SET); + + unsigned char* testbuffer = new unsigned char[7456]; + sceIoRead(m_fileHandle, testbuffer, 7456); + + delete testbuffer; + + initArgs.unk1 = 0; + initArgs.unk2 = 0; + initArgs.mp3StreamStart = 0; + initArgs.mp3StreamEnd = fileSize; + initArgs.mp3BufSize = m_inBufferSize; + initArgs.mp3Buf = (SceVoid*) m_inBuffer; + initArgs.pcmBufSize = m_outBufferSize; + initArgs.pcmBuf = (SceVoid*) m_outBuffer; + + printf("5\n"); + m_mp3Handle = sceMp3ReserveMp3Handle(&initArgs); + if (m_mp3Handle < 0) + return false; + + // Alright we are all set up, let's fill the first buffer. + printf("5.5\n"); + bool _filled= fillBuffers(); + if (! _filled) return false; + + printf("end = %i, bufsize = %i, outSize = %i\n", fileSize, m_inBufferSize, m_outBufferSize); + + // Start this bitch up! + printf("6\n"); + int start = sceMp3Init(m_mp3Handle); + if (start < 0) + return false; + + printf("7\n"); + m_numChannels = sceMp3GetMp3ChannelNum(m_mp3Handle); + printf("8\n"); + m_samplingRate = sceMp3GetSamplingRate(m_mp3Handle); + + return true; +} + +bool JMP3::unload() { + printf("unload 1\n"); + if (m_channel >= 0) + sceAudioSRCChRelease(); + + printf("unload 2\n"); + sceMp3ReleaseMp3Handle(m_mp3Handle); + + printf("unload 3\n"); + sceMp3TermResource(); + + printf("unload 4\n"); + sceIoClose(m_fileHandle); + + printf("unload 5\n"); + //delete[] m_inBuffer; + + printf("unload 6\n"); + //delete[] m_outBuffer; + + printf("unload 7\n"); + return true; +} + +bool JMP3::update() { + if (!m_paused) { + if (sceMp3CheckStreamDataNeeded(m_mp3Handle) > 0) { + fillBuffers(); + } + + short* tempBuffer; + int numDecoded = 0; + + while (true) { + numDecoded = sceMp3Decode(m_mp3Handle, &tempBuffer); + if (numDecoded > 0) + break; + + int ret = sceMp3CheckStreamDataNeeded(m_mp3Handle); + if (ret <= 0) + break; + + fillBuffers(); + } + + // Okay, let's see if we can't get something outputted :/ + if (numDecoded == 0 || numDecoded == 0x80671402) { + sceMp3ResetPlayPosition(m_mp3Handle); + if (!m_loop) + m_paused = true; + + m_samplesPlayed = 0; + } else { + if (m_channel < 0 || m_lastDecoded != numDecoded) { + if (m_channel >= 0) + sceAudioSRCChRelease(); + + m_channel = sceAudioSRCChReserve(numDecoded / (2 * m_numChannels), m_samplingRate, m_numChannels); + } + + // Output + m_samplesPlayed += sceAudioSRCOutputBlocking(m_volume, tempBuffer); + m_playTime = (m_samplingRate > 0) ? (m_samplesPlayed / m_samplingRate) : 0; + } + } + + return true; +} + +bool JMP3::play() { + return (m_paused = false); +} + +bool JMP3::pause() { + return (m_paused = true); +} + +bool JMP3::setLoop(bool loop) { + sceMp3SetLoopNum(m_mp3Handle, (loop == true) ? -1 : 0); + return (m_loop = loop); +} + +int JMP3::setVolume(int volume) { + return (m_volume = volume); +} + +int JMP3::playTime() const { + return m_playTime; +} + +int JMP3::playTimeMinutes() { + return m_playTime / 60; +} + +int JMP3::playTimeSeconds() { + return m_playTime % 60; +} \ No newline at end of file diff --git a/JGE/src/JSfx.cpp b/JGE/src/JSfx.cpp index f498ec1f1..ee8462514 100644 --- a/JGE/src/JSfx.cpp +++ b/JGE/src/JSfx.cpp @@ -10,8 +10,9 @@ #include "../include/JSoundSystem.h" #include "../include/JAudio.h" -#include "../include/JCooleyesMP3.h" - +#include "../include/JMP3.h" +#include +using std::string; JMusic::JMusic() { @@ -26,6 +27,10 @@ JMusic::~JMusic() delete mTrack; } +void JMusic::Update(){ + //if (mTrack) mTrack->update(); +} + JSample::JSample() { mSample = NULL; @@ -93,29 +98,17 @@ void JSoundSystem::DestroySoundSystem() JMusic *JSoundSystem::LoadMusic(const char *fileName) { - //char s[strlen(fileName)+1]; - //strcpy(s, fileName); - + string s = "Res/"; + s.append(fileName); JMusic *music = new JMusic(); if (music) { - music->mTrack = new JCooleyesMP3(); - if (music->mTrack) - music->mTrack->Load(fileName); + music->mTrack = new JMP3(s); } - + JMP3::mInstance = music->mTrack; return music; } -// void JSoundSystem::FreeMusic(JMusic *music) -// { -// if (music) -// { -// if (music->mTrack) -// delete music->mTrack; -// -// } -// } JSample *JSoundSystem::LoadSample(const char *fileName) { @@ -132,30 +125,8 @@ JSample *JSoundSystem::LoadSample(const char *fileName) return sample; } -// -// void JSoundSystem::FreeMusic(JMusic *music) -// { -// if (music) -// { -// if (music->mTrack) -// { -// music->mTrack->Release(); -// delete music->mTrack; -// } -// delete music; -// } -// } -// void JSoundSystem::FreeSample(JSample *sample) -// { -// if (sample) -// { -// releaseWaveData(sample->mSample); -// delete sample; -// } -// } - void JSoundSystem::PlayMusic(JMusic *music, bool looping) { @@ -174,8 +145,8 @@ void JSoundSystem::PlaySample(JSample *sample) void JSoundSystem::SetVolume(int volume) { - - mVolume = volume; + JMP3 * mp3 = JMP3::mInstance; + if (mp3) mp3->setVolume(volume); } @@ -188,7 +159,7 @@ void JSoundSystem::StopMusic(JMusic *music) void JSoundSystem::ResumeMusic(JMusic *music) { - ResumeMP3(); + ResumeMP3(music->mTrack); } diff --git a/JGE/src/win/JRenderer_Win.cpp b/JGE/src/win/JRenderer_Win.cpp index 2bb717696..4ad7256e4 100644 --- a/JGE/src/win/JRenderer_Win.cpp +++ b/JGE/src/win/JRenderer_Win.cpp @@ -10,6 +10,8 @@ #ifdef WIN32 #pragma warning(disable : 4786) +extern int actualWidth; +extern int actualHeight; #endif #include "../../Dependencies/include/png.h" @@ -192,13 +194,16 @@ void JRenderer::DestroyRenderer() void JRenderer::BeginScene() { glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer - glLoadIdentity (); // Reset The Modelview Matrix - + glLoadIdentity ();// Reset The Modelview Matrix + float scaleH = (float)actualHeight/SCREEN_HEIGHT_F; + float scaleW = (float)actualWidth/SCREEN_WIDTH_F; + glScalef(scaleW,scaleW,1.f); } void JRenderer::EndScene() { + glFlush (); } diff --git a/JGE/src/win/JSoundSystem_Win.cpp b/JGE/src/win/JSoundSystem_Win.cpp index 9a0bfcc6e..423b934d4 100644 --- a/JGE/src/win/JSoundSystem_Win.cpp +++ b/JGE/src/win/JSoundSystem_Win.cpp @@ -21,6 +21,9 @@ JMusic::JMusic() } +void JMusic::Update(){ +} + JMusic::~JMusic() { JSoundSystem::GetInstance()->StopMusic(this); diff --git a/JGE/src/winmain.cpp b/JGE/src/winmain.cpp index 4793724bd..0a7b4e6af 100644 --- a/JGE/src/winmain.cpp +++ b/JGE/src/winmain.cpp @@ -10,7 +10,8 @@ * Visit My Site At nehe.gamedev.net */ - +int actualWidth; +int actualHeight; #include // Header File For Windows #include // Header File For The OpenGL32 Library @@ -42,6 +43,7 @@ HINSTANCE hInstance; // Holds The Instance Of The Application bool active=TRUE; // Window Active Flag Set To TRUE By Default bool fullscreen=FALSE; // Windowed Mode By Default + DWORD lastTickCount; BOOL g_keys[256]; @@ -142,17 +144,20 @@ GLvoid ReSizeGLScene(GLsizei width, GLsizei height) // Resize And Initialize Th height=1; // Making Height Equal One } - glViewport(0,0,width,height); // Reset The Current Viewport +actualWidth = width; +actualHeight = height; - glMatrixMode(GL_PROJECTION); // Select The Projection Matrix - glLoadIdentity(); // Reset The Projection Matrix +glScissor(0, 0, width, height); + glViewport (0, 0, width, height); // Reset The Current Viewport + glMatrixMode (GL_PROJECTION); // Select The Projection Matrix + glLoadIdentity (); // Reset The Projection Matrix + + gluOrtho2D(0.0f, (float) width-1.0f, 0.0f, (float) height -1.0f); - // Calculate The Aspect Ratio Of The Window - gluPerspective(75.0f,(GLfloat)width/(GLfloat)height,0.5f,1000.0f); - - glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix - glLoadIdentity(); // Reset The Modelview Matrix + glMatrixMode (GL_MODELVIEW); // Select The Modelview Matrix + glLoadIdentity (); // Reset The Modelview Matrix + glDisable (GL_DEPTH_TEST); } int InitGL(GLvoid) // All Setup For OpenGL Goes Here @@ -303,6 +308,11 @@ GLvoid KillGLWindow(GLvoid) // Properly Kill The Window BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag) { + +actualWidth = width; +actualHeight = height; + + GLuint PixelFormat; // Holds The Results After Searching For A Match WNDCLASS wc; // Windows Class Structure DWORD dwExStyle; // Window Extended Style @@ -373,6 +383,8 @@ BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscree dwStyle= WS_OVERLAPPED | \ WS_CAPTION | \ WS_MINIMIZEBOX | + WS_SIZEBOX | + WS_MAXIMIZEBOX | //WS_MINIMIZE | WS_SYSMENU;// | \ //WS_THICKFRAME ; @@ -565,6 +577,7 @@ LRESULT CALLBACK WndProc( HWND hWnd, // Handle For This Window case WM_SIZE: // Resize The OpenGL Window { + ReSizeGLScene(LOWORD(lParam),HIWORD(lParam)); // LoWord=Width, HiWord=Height return 0; // Jump Back } diff --git a/projects/mtg/Makefile.3xx b/projects/mtg/Makefile.3xx index 2fee875bb..019882827 100644 --- a/projects/mtg/Makefile.3xx +++ b/projects/mtg/Makefile.3xx @@ -13,7 +13,7 @@ ASFLAGS = $(CXXFLAGS) INCDIR = ../../JGE/include ../../JGE/include/psp ../../JGE/include/psp/freetype2 ../../JGE/src LIBDIR = ../../JGE/lib/psp LDFLAGS = -LIBS = -ljge300 -lhgetools -lfreetype -ljpeg -lgif -lpng -lz -lm -lmikmod -lpsppower -lpspmpeg -lpspaudiocodec -lpspaudiolib -lpspaudio -lpspgum -lpspgu -lpsprtc -lstdc++ -lpspfpu +LIBS = -ljge300 -lhgetools -lfreetype -ljpeg -lgif -lpng -lz -lm -lmikmod -lpsppower -lpspmpeg -lpspaudiocodec -lpspaudiolib -lpspaudio -lpspmp3 -lpspgum -lpspgu -lpsprtc -lstdc++ -lpspfpu EXTRA_TARGETS = EBOOT.PBP PSP_EBOOT_TITLE = WTH?! diff --git a/projects/mtg/bin/Res/settings/options.txt b/projects/mtg/bin/Res/settings/options.txt index ea94995d9..b1910a1a6 100644 --- a/projects/mtg/bin/Res/settings/options.txt +++ b/projects/mtg/bin/Res/settings/options.txt @@ -1,50 +1,50 @@ -100 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 +100 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/projects/mtg/bin/Res/settings/prices.dat b/projects/mtg/bin/Res/settings/prices.dat index 089199af6..ab0969b89 100644 --- a/projects/mtg/bin/Res/settings/prices.dat +++ b/projects/mtg/bin/Res/settings/prices.dat @@ -1,92 +1,92 @@ -1167 -460 -1202 -525 -1340 -92 -1284 -101 -1149 -20 -1264 -20 -1321 -20 -1272 -437 -1126 -485 -1334 -107 -1352 -91 -1279 -20 -1154 -481 -1328 -551 -1335 -20 -1227 -500 -1236 -489 -1186 -20 -1219 -20 -1175 -459 -1136 -111 -1332 -545 -1250 -21 -1204 -19 -1381 -499 -1170 -484 -1097 -102 -1102 -46 -1282 -485 -1378 -490 -1300 -20 -1363 -495 -129665 -90 -1387 -4 -129652 -5 -174957 -108 -175030 -5 -130378 -107 -175031 -5 -1312 -19 -130386 -97 -1275 -21 -1148 -103 -135185 -20 -1100 -109 -153441 -19 +1167 +460 +1202 +525 +1340 +92 +1284 +101 +1149 +20 +1264 +20 +1321 +20 +1272 +437 +1126 +485 +1334 +107 +1352 +91 +1279 +20 +1154 +481 +1328 +551 +1335 +20 +1227 +500 +1236 +489 +1186 +20 +1219 +20 +1175 +459 +1136 +111 +1332 +545 +1250 +21 +1204 +19 +1381 +499 +1170 +484 +1097 +102 +1102 +46 +1282 +485 +1378 +490 +1300 +20 +1363 +495 +129665 +90 +1387 +4 +129652 +5 +174957 +108 +175030 +5 +130378 +107 +175031 +5 +1312 +19 +130386 +97 +1275 +21 +1148 +103 +135185 +20 +1100 +109 +153441 +19 diff --git a/projects/mtg/include/GameApp.h b/projects/mtg/include/GameApp.h index 6076d7aeb..3eccd69da 100644 --- a/projects/mtg/include/GameApp.h +++ b/projects/mtg/include/GameApp.h @@ -80,6 +80,7 @@ class GameApp: public JApp static JResourceManager * CommonRes; static hgeParticleSystem * Particles[6]; static int HasMusic; + static JMusic* music; }; diff --git a/projects/mtg/include/GameStateDeckViewer.h b/projects/mtg/include/GameStateDeckViewer.h index 6eb4951e3..2cc8d8393 100644 --- a/projects/mtg/include/GameStateDeckViewer.h +++ b/projects/mtg/include/GameStateDeckViewer.h @@ -194,9 +194,13 @@ class GameStateDeckViewer: public GameState, public JGuiListener welcome_menu->Add(10, "Cancel"); if (GameApp::HasMusic && GameOptions::GetInstance()->values[OPTIONS_MUSICVOLUME] > 0){ - if (!bgMusic) bgMusic = JSoundSystem::GetInstance()->LoadMusic("sound/Track1.mp3"); - if (bgMusic){ - JSoundSystem::GetInstance()->PlayMusic(bgMusic, true); + if (GameApp::music){ + JSoundSystem::GetInstance()->StopMusic(GameApp::music); + SAFE_DELETE(GameApp::music); + } + GameApp::music = JSoundSystem::GetInstance()->LoadMusic("sound/track1.mp3"); + if (GameApp::music){ + JSoundSystem::GetInstance()->PlayMusic(GameApp::music, true); } } colorFilter = ALL_COLORS; @@ -219,7 +223,10 @@ class GameStateDeckViewer: public GameState, public JGuiListener virtual void End() { //mEngine->EnableVSync(false); - if (bgMusic) JSoundSystem::GetInstance()->StopMusic(bgMusic); + if (GameApp::music){ + JSoundSystem::GetInstance()->StopMusic(GameApp::music); + SAFE_DELETE(GameApp::music); + } SAFE_DELETE(backTex); SAFE_DELETE(backQuad); SAFE_DELETE(welcome_menu); diff --git a/projects/mtg/include/GameStateMenu.h b/projects/mtg/include/GameStateMenu.h index b3c203d90..9d25dc006 100644 --- a/projects/mtg/include/GameStateMenu.h +++ b/projects/mtg/include/GameStateMenu.h @@ -43,7 +43,7 @@ class GameStateMenu: public GameState, public JGuiListener JQuad * mMovingW; float mCreditsYPos; int currentState; - JMusic * bgMusic; + //JMusic * bgMusic; int mVolume; char nbcardsStr[400]; @@ -64,10 +64,11 @@ class GameStateMenu: public GameState, public JGuiListener mGuiController = NULL; subMenuController = NULL; mIconsTexture = NULL; - bgMusic = NULL; + //bgMusic = NULL; timeIndex = 0; angleMultiplier = MIN_ANGLE_MULTIPLIER; yW = 55; + mVolume = 0; } virtual ~GameStateMenu() @@ -90,7 +91,7 @@ class GameStateMenu: public GameState, public JGuiListener mIconsTexture = JRenderer::GetInstance()->LoadTexture("graphics/menuicons.png", TEX_TYPE_USE_VRAM); bgTexture = JRenderer::GetInstance()->LoadTexture("graphics/menutitle.png", TEX_TYPE_USE_VRAM); movingWTexture = JRenderer::GetInstance()->LoadTexture("graphics/movingW.png", TEX_TYPE_USE_VRAM); - mBg = NEW JQuad(bgTexture, 0, 0, 256, 167); // Create background quad for rendering. + mBg = NEW JQuad(bgTexture, 0, 0, 256, 166); // Create background quad for rendering. mMovingW = NEW JQuad(movingWTexture, 2, 2, 84, 62); mBg->SetHotSpot(105,50); mMovingW->SetHotSpot(72,16); @@ -149,7 +150,7 @@ class GameStateMenu: public GameState, public JGuiListener if (mBg) delete mBg; if (mMovingW) delete mMovingW; - SAFE_DELETE (bgMusic); + //SAFE_DELETE (bgMusic); } @@ -157,15 +158,17 @@ class GameStateMenu: public GameState, public JGuiListener JRenderer::GetInstance()->ResetPrivateVRAM(); JRenderer::GetInstance()->EnableVSync(true); - if (GameApp::HasMusic && !bgMusic && GameOptions::GetInstance()->values[OPTIONS_MUSICVOLUME] > 0){ - bgMusic = JSoundSystem::GetInstance()->LoadMusic("sound/Track0.mp3"); + + if (GameApp::HasMusic && !GameApp::music && GameOptions::GetInstance()->values[OPTIONS_MUSICVOLUME] > 0){ + GameApp::music = JSoundSystem::GetInstance()->LoadMusic("sound/Track0.mp3"); + JSoundSystem::GetInstance()->PlayMusic(GameApp::music, true); } - if (bgMusic){ - mVolume = 0; - JSoundSystem::GetInstance()->SetVolume(mVolume); - JSoundSystem::GetInstance()->PlayMusic(bgMusic, true); - } + if (GameApp::HasMusic && GameApp::music && GameOptions::GetInstance()->values[OPTIONS_MUSICVOLUME] == 0){ + JSoundSystem::GetInstance()->StopMusic(GameApp::music); + SAFE_DELETE(GameApp::music); + } + } @@ -198,19 +201,23 @@ class GameStateMenu: public GameState, public JGuiListener { //mEngine->EnableVSync(false); - if (bgMusic) - { - JSoundSystem::GetInstance()->StopMusic(bgMusic); - } + // if (bgMusic) + // { + //JSoundSystem::GetInstance()->StopMusic(bgMusic); + //SAFE_DELETE(bgMusic); + // } JRenderer::GetInstance()->EnableVSync(false); } virtual void Update(float dt) { - if (bgMusic && mVolume < 2*GameOptions::GetInstance()->values[OPTIONS_MUSICVOLUME]){ - mVolume++; - JSoundSystem::GetInstance()->SetVolume(mVolume/2); + + if (GameApp::music){ + /*if (mVolume < 2*GameOptions::GetInstance()->values[OPTIONS_MUSICVOLUME]){ + mVolume++; + JSoundSystem::GetInstance()->SetVolume(mVolume/2); + }*/ } timeIndex += dt * 2; @@ -282,7 +289,7 @@ class GameStateMenu: public GameState, public JGuiListener if (mEngine->GetButtonState(PSP_CTRL_TRIANGLE) && (dt != 0)) { angleMultiplier = (cos(timeIndex)*angleMultiplier - M_PI/3 - 0.1 - angleW) / dt; - yW = yW + 0.001 + (yW - 55) / 1000; + yW = yW + 5*dt + (yW - 55) *5* dt; } else angleW = cos(timeIndex)*angleMultiplier - M_PI/3 - 0.1; @@ -290,7 +297,7 @@ class GameStateMenu: public GameState, public JGuiListener else { angleW += angleMultiplier * dt; - yW = yW + 0.001 + (yW - 55) / 1000; + yW = yW + 5*dt + (yW - 55) *5*dt; } } diff --git a/projects/mtg/include/debug.h b/projects/mtg/include/debug.h index 63bafe8f8..7a6ce9c05 100644 --- a/projects/mtg/include/debug.h +++ b/projects/mtg/include/debug.h @@ -6,6 +6,8 @@ #endif #ifdef _DEBUG +//if you get the following error :'_NORMAL_BLOCK' : undeclared identifier, +// try to add #include "crtdbg.h" somewhere in your code before including this file #define NEW new(_NORMAL_BLOCK, __FILE__, __LINE__) #else #define NEW new diff --git a/projects/mtg/src/GameApp.cpp b/projects/mtg/src/GameApp.cpp index 6773812f8..6a6f4d435 100644 --- a/projects/mtg/src/GameApp.cpp +++ b/projects/mtg/src/GameApp.cpp @@ -21,6 +21,7 @@ const char * const GameState::menuTexts[]= {"--NEW--","Deck 1", "Deck 2", "Deck JResourceManager* GameApp::CommonRes = NEW JResourceManager(); hgeParticleSystem* GameApp::Particles[] = {NULL,NULL,NULL,NULL,NULL,NULL}; int GameApp::HasMusic = 1; +JMusic * GameApp::music = NULL; GameState::GameState(GameApp* parent): mParent(parent) { @@ -75,6 +76,7 @@ void GameApp::Create() } + CommonRes->CreateTexture("graphics/menuicons.png"); //Creating thes quad in this specific order allows us to have them in the correct order to call them by integer id CommonRes->CreateQuad("c_artifact", "graphics/menuicons.png", 2 + 6*36, 38, 32, 32); diff --git a/projects/mtg/src/GameStateDuel.cpp b/projects/mtg/src/GameStateDuel.cpp index 4ee813e9a..a7aad5cc5 100644 --- a/projects/mtg/src/GameStateDuel.cpp +++ b/projects/mtg/src/GameStateDuel.cpp @@ -181,6 +181,11 @@ void GameStateDuel::Update(float dt) } }else if (mGamePhase == DUEL_PLAY){ + //Stop the music before starting the game + if (GameApp::music){ + JSoundSystem::GetInstance()->StopMusic(GameApp::music); + SAFE_DELETE(GameApp::music); + } if (!game){ GameObserver::Init(mPlayers, 2); game = GameObserver::GetInstance(); @@ -209,11 +214,13 @@ void GameStateDuel::Update(float dt) }else{ mGamePhase = DUEL_END; } - }else if (mParent->players[0] == PLAYER_TYPE_CPU && mParent->players[1] == PLAYER_TYPE_CPU){ + }else +#endif + if (mParent->players[0] == PLAYER_TYPE_CPU && mParent->players[1] == PLAYER_TYPE_CPU){ End(); Start(); } -#endif + mFont->SetColor(ARGB(255,255,255,255)); } if (mEngine->GetButtonClick(PSP_CTRL_START)){ diff --git a/projects/mtg/tools/gatherer/gatherer-builder.py b/projects/mtg/tools/gatherer/gatherer-builder.py index b2d742e16..50ec24ac7 100644 --- a/projects/mtg/tools/gatherer/gatherer-builder.py +++ b/projects/mtg/tools/gatherer/gatherer-builder.py @@ -1,188 +1,188 @@ -#!/usr/bin/python -# -# Requires BeautifulSoup verion 3, available from -# http://www.crummy.com/software/BeautifulSoup/ -# -# Usage: python gatherer-builder.py -# -# Copyright 2006: Nathan Callahan -# Feel free to do what you want with this file, but give credit -# where it's due. - - -from BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag -import re -import codecs -import sys -import urllib -import os -import os.path -from mtgCommon import * - -setinfo=sets['SHM'] -stripReminderText = False -conffile = open(setinfo['dir'] + ".conf", 'w') - -# FETCH_IMAGES = False -FETCH_IMAGES = True - -url = "http://ww2.wizards.com/gatherer/Index.aspx?setfilter=%s\\&output=Spoiler" % setinfo['gathname'] -gatherer = urllib.urlopen(url) -soup = BeautifulSoup(gatherer.read(), smartQuotesTo=None) - -xml = BeautifulStoneSoup('' % (setinfo['name'], setinfo['dir'], setinfo['abbrev']),selfClosingTags=['attr']) - -rarity_re=re.compile(".*%s_(?P.)\.gif.*" % setinfo['gathabbrev']) - - -def fetchImage(id, filename): - if (not os.path.exists(setinfo['abbrev'] + "/" + filename)): - for i in setinfo['gathdirs']: - url="http://resources.wizards.com/Magic/Cards/%s/Card%s.jpg" % (i, id) - print url - try: - pic = urllib.urlopen(url) - except: - pass - if (not pic): # this is completely wrong, supposed to check if it's not found - raise IOError - - if (not os.path.exists(setinfo['abbrev'])): - os.mkdir(setinfo['abbrev']) - else: - assert os.path.isdir(setinfo['abbrev']) - f = open(setinfo['abbrev'] + "/" + filename, 'wb') - f.write(pic.read()) - f.close() - - - -for cardRow in soup.find(id="_gridResults").findAll('tr',onmouseover="this.style.backgroundColor='#F5DEB3';"): - name = cardRow('b')[0].string - name = name.replace('"','') - name = name.replace(u'\xe2', 'a') - name = name.replace(u'\xc6', 'AE') - - manaCost = replaceSymbols(cardRow('td')[1]('font')[0]) - manaCost = ''.join(manaCost.contents) - print manaCost - if manaCost == " ": - manaCost=""; - - htmlText = cardRow('td')[3] - htmlText = replaceSymbols(htmlText) - text = cleanupHTMLText(htmlText, stripReminderText) - - supertype, subtype = getCardTypes(cardRow) - - splitCard = split_re.match(text) - if splitCard: - text = splitCard.group('t1') + " // " + splitCard.group('t2') - manaCost = manaCost + " // " + splitCard.group('mana2') - supertype = supertype + " // " + splitCard.group('type2') - - power = cardRow('td')[4]('font')[0].string - if power == " ": - power = None - - toughness = cardRow('td')[5]('font')[0].string - if toughness == " ": - toughness = None - - colors = set() - for c in manaCost: - if c in symbolColors: - colors.add(symbolColors[c].capitalize()) - color = ''.join(sorted([c+" " for c in colors])).rstrip() - if not color: - if (supertype.find("Artifact") != -1): - color = "Artifact" - elif (supertype.find("Land") != -1): - color = "Land" - else: - ss = "%s is " % name - start = text.find(ss) + len(ss) - end = text.find('.',start) - color = text[start:end].capitalize() - - printings = 1 - for printing in cardRow('td')[6].findAll(src=rarity_re): - print name - if name in basic_lands: - rarity = 'L' - else: - rarity = rarity_re.match(str(printing)).group('rarity') - - card = Tag(xml, 'card') - cards=xml('ccg-setinfo')[0]('cards')[0] - - cards.insert(len(cards),card) - card=cards('card')[-1] - - card['name']=name - - if printings > 1: - card['graphics']=name.translate(imagetrans)+str(printings)+".jpg" - else: - card['graphics']=name.translate(imagetrans)+".jpg" - - id = id_re.match(printing.parent['onclick']).group('id') - if FETCH_IMAGES: - fetchImage(id, id + ".jpg") - - - - - - - text = text.replace(u'\xe2', 'a') - card['text']=text - - card.insert(0,Tag(xml,'attr')) - card('attr')[0]['key']='rarity' - card('attr')[0]['value']=rarity - card.insert(1,Tag(xml,'attr')) - card('attr')[1]['key']='color' - card('attr')[1]['value']=color - - conffile.write("[card]") -# conffile.write("\nimage=" + card['graphics']) - conffile.write("\ntext=" + text) - conffile.write("\nid=" + id) - conffile.write("\nname=" + name) - conffile.write("\nrarity=" + rarity) -# conffile.write("\ncolor=" + color) - conffile.write("\ntype=" + supertype) - - if manaCost: - card.insert(2,Tag(xml,'attr')) - card('attr')[2]['key']='cost' - card('attr')[2]['value']=manaCost - conffile.write("\nmana=" + manaCost) - if power: - card.insert(len(card),Tag(xml,'attr')) - card('attr')[-1]['key']='power' - card('attr')[-1]['value']=power - conffile.write("\npower=" + power) - if subtype: - subtype = subtype.replace(u'\xe2', 'a') - card.insert(len(card),Tag(xml,'attr')) - card('attr')[-1]['key']='subtype' - card('attr')[-1]['value']=subtype - conffile.write("\nsubtype=" + subtype) - if toughness: - card.insert(len(card),Tag(xml,'attr')) - card('attr')[-1]['key']='toughness' - card('attr')[-1]['value']=toughness - conffile.write("\ntoughness=" + toughness) - card.insert(len(card),Tag(xml,'attr')) - card('attr')[-1]['key']='type' - card('attr')[-1]['value']=supertype - - printings += 1 - conffile.write("\n[/card]\n") -f = file(sys.argv[1],'w') -f.write(xml.prettify('latin1')) -f.close() -conffile.close() - +#!/usr/bin/python +# +# Requires BeautifulSoup verion 3, available from +# http://www.crummy.com/software/BeautifulSoup/ +# +# Usage: python gatherer-builder.py +# +# Copyright 2006: Nathan Callahan +# Feel free to do what you want with this file, but give credit +# where it's due. + + +from BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag +import re +import codecs +import sys +import urllib +import os +import os.path +from mtgCommon import * + +setinfo=sets['CK'] +stripReminderText = False +conffile = open(setinfo['dir'] + ".conf", 'w') + +# FETCH_IMAGES = False +FETCH_IMAGES = True + +url = "http://ww2.wizards.com/gatherer/Index.aspx?setfilter=%s\\&output=Spoiler" % setinfo['gathname'] +gatherer = urllib.urlopen(url) +soup = BeautifulSoup(gatherer.read(), smartQuotesTo=None) + +xml = BeautifulStoneSoup('' % (setinfo['name'], setinfo['dir'], setinfo['abbrev']),selfClosingTags=['attr']) + +rarity_re=re.compile(".*%s_(?P.)\.gif.*" % setinfo['gathabbrev']) + + +def fetchImage(id, filename): + if (not os.path.exists(setinfo['abbrev'] + "/" + filename)): + for i in setinfo['gathdirs']: + url="http://resources.wizards.com/Magic/Cards/%s/Card%s.jpg" % (i, id) + print url + try: + pic = urllib.urlopen(url) + except: + pass + if (not pic): # this is completely wrong, supposed to check if it's not found + raise IOError + + if (not os.path.exists(setinfo['abbrev'])): + os.mkdir(setinfo['abbrev']) + else: + assert os.path.isdir(setinfo['abbrev']) + f = open(setinfo['abbrev'] + "/" + filename, 'wb') + f.write(pic.read()) + f.close() + + + +for cardRow in soup.find(id="_gridResults").findAll('tr',onmouseover="this.style.backgroundColor='#F5DEB3';"): + name = cardRow('b')[0].string + name = name.replace('"','') + name = name.replace(u'\xe2', 'a') + name = name.replace(u'\xc6', 'AE') + + manaCost = replaceSymbols(cardRow('td')[1]('font')[0]) + manaCost = ''.join(manaCost.contents) + print manaCost + if manaCost == " ": + manaCost=""; + + htmlText = cardRow('td')[3] + htmlText = replaceSymbols(htmlText) + text = cleanupHTMLText(htmlText, stripReminderText) + + supertype, subtype = getCardTypes(cardRow) + + splitCard = split_re.match(text) + if splitCard: + text = splitCard.group('t1') + " // " + splitCard.group('t2') + manaCost = manaCost + " // " + splitCard.group('mana2') + supertype = supertype + " // " + splitCard.group('type2') + + power = cardRow('td')[4]('font')[0].string + if power == " ": + power = None + + toughness = cardRow('td')[5]('font')[0].string + if toughness == " ": + toughness = None + + colors = set() + for c in manaCost: + if c in symbolColors: + colors.add(symbolColors[c].capitalize()) + color = ''.join(sorted([c+" " for c in colors])).rstrip() + if not color: + if (supertype.find("Artifact") != -1): + color = "Artifact" + elif (supertype.find("Land") != -1): + color = "Land" + else: + ss = "%s is " % name + start = text.find(ss) + len(ss) + end = text.find('.',start) + color = text[start:end].capitalize() + + printings = 1 + for printing in cardRow('td')[6].findAll(src=rarity_re): + print name + if name in basic_lands: + rarity = 'L' + else: + rarity = rarity_re.match(str(printing)).group('rarity') + + card = Tag(xml, 'card') + cards=xml('ccg-setinfo')[0]('cards')[0] + + cards.insert(len(cards),card) + card=cards('card')[-1] + + card['name']=name + + if printings > 1: + card['graphics']=name.translate(imagetrans)+str(printings)+".jpg" + else: + card['graphics']=name.translate(imagetrans)+".jpg" + + id = id_re.match(printing.parent['onclick']).group('id') + if FETCH_IMAGES: + fetchImage(id, id + ".jpg") + + + + + + + text = text.replace(u'\xe2', 'a') + card['text']=text + + card.insert(0,Tag(xml,'attr')) + card('attr')[0]['key']='rarity' + card('attr')[0]['value']=rarity + card.insert(1,Tag(xml,'attr')) + card('attr')[1]['key']='color' + card('attr')[1]['value']=color + + conffile.write("[card]") +# conffile.write("\nimage=" + card['graphics']) + conffile.write("\ntext=" + text) + conffile.write("\nid=" + id) + conffile.write("\nname=" + name) + conffile.write("\nrarity=" + rarity) +# conffile.write("\ncolor=" + color) + conffile.write("\ntype=" + supertype) + + if manaCost: + card.insert(2,Tag(xml,'attr')) + card('attr')[2]['key']='cost' + card('attr')[2]['value']=manaCost + conffile.write("\nmana=" + manaCost) + if power: + card.insert(len(card),Tag(xml,'attr')) + card('attr')[-1]['key']='power' + card('attr')[-1]['value']=power + conffile.write("\npower=" + power) + if subtype: + subtype = subtype.replace(u'\xe2', 'a') + card.insert(len(card),Tag(xml,'attr')) + card('attr')[-1]['key']='subtype' + card('attr')[-1]['value']=subtype + conffile.write("\nsubtype=" + subtype) + if toughness: + card.insert(len(card),Tag(xml,'attr')) + card('attr')[-1]['key']='toughness' + card('attr')[-1]['value']=toughness + conffile.write("\ntoughness=" + toughness) + card.insert(len(card),Tag(xml,'attr')) + card('attr')[-1]['key']='type' + card('attr')[-1]['value']=supertype + + printings += 1 + conffile.write("\n[/card]\n") +f = file(sys.argv[1],'w') +f.write(xml.prettify('latin1')) +f.close() +conffile.close() + diff --git a/projects/mtg/tools/gatherer/mtgCommon.py b/projects/mtg/tools/gatherer/mtgCommon.py index d1726dc37..ff561746b 100644 --- a/projects/mtg/tools/gatherer/mtgCommon.py +++ b/projects/mtg/tools/gatherer/mtgCommon.py @@ -1,494 +1,495 @@ -from BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag -import re -import codecs -import sys - -sets ={'BE':{'name':'Beta', - 'dir':'BE', - 'abbrev':'BE', - 'gathabbrev': '2E', - 'gathname':'LimitedEditionBeta', - }, - 'RV':{'name':'Revised', - 'dir':'RV', - 'abbrev':'RV', - 'gathdirs':['3E/en-us'], - 'gathabbrev': '3E', - 'gathname':'RevisedEdition' - }, - '4E':{'name':'4th Edition', - 'dir':'4E', - 'abbrev':'4E', - 'gathdirs':['4E/en-us'], - 'gathabbrev': '4E', - 'gathname':'FourthEdition', - }, - '5E':{'name':'5th Edition', - 'dir':'5E', - 'abbrev':'5E', - 'gathdirs':['5E/en-us'], - 'gathabbrev': '5E', - 'gathname':'FifthEdition' - }, - '6E':{'name':'6th Edition', - 'dir':'6E', - 'abbrev':'6E', - 'gathdirs':['6E/en-us'], - 'gathabbrev': '6E', - 'gathname':'ClassicSixthEdition', - }, - '7E':{'name':'7th Edition', - 'dir':'7E', - 'abbrev':'7E', - 'gathdirs':['7E/en-us'], - 'gathabbrev': '7E', - 'gathname':'SeventhEdition', - }, - '8E':{'name':'8th Edition', - 'dir':'8E', - 'abbrev':'8E', - 'gathdirs':['8ED/en-us'], - 'gathabbrev': '8ED', - 'gathname':'EighthEdition', - }, - '9E':{'name':'9th Edition', - 'dir':'9E', - 'abbrev':'9E', - 'gathdirs':['9ED/en-us'], - 'gathabbrev': '9ED', - 'gathname':'NinthEdition', - }, - '10E':{'name':'10th Edition', - 'dir':'10E', - 'abbrev':'10E', - 'gathdirs':['10E/EN'], - 'gathabbrev': '10E', - 'gathname':'TenthEdition', - }, - 'EVE':{'name':'Eventide', - 'dir':'EVE', - 'abbrev':'EVE', - 'gathdirs':['EVE/EN'], - 'gathabbrev': 'EVE', - 'gathname':'Eventide', - }, - 'SHM':{'name':'Shadowmoor', - 'dir':'SHM', - 'abbrev':'SHM', - 'gathdirs':['SHM/EN'], - 'gathabbrev': 'SHM', - 'gathname':'Shadowmoor', - }, - 'ALA':{'name':'Shards of Alara', - 'dir':'ALA', - 'abbrev':'ALA', - 'gathdirs':['ALA/EN'], - 'gathabbrev': 'ALA', - 'gathname':'ShardsOfAlara', - }, - 'UH':{'name':'Unhinged', - 'dir':'UH', - 'abbrev':'UH', - 'gathdirs':['UNH/en-us'], - 'gathabbrev': 'UNH', - 'gathname':'Unhinged', - }, - 'UG':{'name':'Unglued', - 'dir':'UG', - 'abbrev':'UG', - 'gathdirs':['UG/en-us'], - 'gathabbrev':'UG', - 'gathname':'Unglued', - }, - 'P1':{'name':'Portal', - 'dir':'P1', - 'abbrev':'P1', - 'gathdirs':['P1/en-us'], - 'gathabbrev':'P1', - 'gathname':'Portal', - }, - 'P2':{'name':'Portal Second Age', - 'dir':'P2', - 'abbrev':'P2', - 'gathdirs':['P2/en-us'], - 'gathabbrev':'P2', - 'gathname':'PortalSecondAge', - }, - 'P3':{'name':'Portal Three Kingdoms', - 'dir':'P3', - 'abbrev':'P3', - 'gathdirs':['PK/en-us'], - 'gathabbrev': 'PK', - 'gathname':'PortalThreeKingdoms', - }, - 'AN':{'name':'Arabian Nights', - 'dir':'AN', - 'abbrev':'AN', - 'gathdirs':['AN/en-us'], - 'gathabbrev': 'AN', - 'gathname':'ArabianNights' - }, - 'AQ':{'name':'Antiquities', - 'dir':'AQ', - 'abbrev':'AQ', - 'gathdirs':['AQ/en-us'], - 'gathabbrev': 'AQ', - 'gathname':'Antiquities', - }, - 'LG':{'name':'Legends', - 'dir':'LG', - 'abbrev':'LG', - 'gathdirs':['LG/en-us'], - 'gathabbrev': 'LE', - 'gathname':'Legends', - }, - 'DK':{'name':'The Dark', - 'dir':'DK', - 'abbrev':'DK', - 'gathdirs':['DK/en-us'], - 'gathabbrev': 'DK', - 'gathname':'TheDark', - }, - 'FE':{'name':'Fallen Empires', - 'dir':'FE', - 'abbrev':'FE', - 'gathdirs':['FE/en-us'], - 'gathabbrev': 'FE', - 'gathname':'FallenEmpires', - }, - 'IA':{'name':'Ice Age', - 'dir':'IA', - 'abbrev':'IA', - 'gathdirs':['IA/en-us'], - 'gathabbrev': 'IA', - 'gathname':'IceAge', - }, - 'HL':{'name':'Homelands', - 'dir':'HL', - 'abbrev':'HL', - 'gathdirs':['HM/en-us'], - 'gathabbrev': 'HM', - 'gathname':'Homelands' - }, - 'AL':{'name':'Alliances', - 'dir':'AL', - 'abbrev':'AL', - 'gathdirs':['AL/en-us'], - 'gathabbrev': 'AL', - 'gathname':'Alliances', - }, - 'MI':{'name':'Mirage', - 'dir':'MI', - 'abbrev':'MI', - 'gathdirs':['MI/en-us'], - 'gathabbrev': 'MI', - 'gathname':'Mirage', - }, - 'VI':{'name':'Visions', - 'dir':'VI', - 'abbrev':'VI', - 'gathabbrev': 'VI', - 'gathname':'Visions', - }, - 'WL':{'name':'Weatherlight', - 'dir':'WL', - 'abbrev':'WL', - 'gathabbrev': 'WL', - 'gathname':'Weatherlight', - }, - 'TE':{'name':'Tempest', - 'dir':'TE', - 'abbrev':'TE', - 'gathabbrev': 'TE', - 'gathname':'Tempest', - }, - 'SH':{'name':'Stronghold', - 'dir':'SH', - 'abbrev':'SH', - 'gathabbrev': 'ST', - 'gathname':'Stronghold', - }, - 'EX':{'name':'Exodus', - 'dir':'EX', - 'abbrev':'EX', - 'gathabbrev': 'EX', - 'gathname':'Exodus', - }, - 'US':{'name':'Urza\'s Saga', - 'dir':'US', - 'abbrev':'US', - 'gathabbrev': 'UZ', - 'gathname':'UrzasSaga', - }, - 'UL':{'name':'Urza\'s Legacy', - 'dir':'UL', - 'abbrev':'UL', - 'gathabbrev': 'GU', - 'gathname':'UrzasDestiny', - }, - 'UD':{'name':'Urza\'s Destiny', - 'dir':'UD', - 'abbrev':'UD', - 'gathabbrev': 'CG', - 'gathname':'UrzasLegacy', - }, - 'MM':{'name':'Mercadian Masques', - 'dir':'MM', - 'abbrev':'MM', - 'gathabbrev': 'MM', - 'gathname':'MercadianMasques', - }, - 'NE':{'name':'Nemesis', - 'dir':'NE', - 'abbrev':'NE', - 'gathabbrev': 'NE', - 'gathname':'Nemesis', - }, - 'PY':{'name':'Prophecy', - 'dir':'PY', - 'abbrev':'PY', - 'gathabbrev': 'PR', - 'gathname':'Prophecy', - }, - 'IN':{'name':'Invasion', - 'dir':'IN', - 'abbrev':'IN', - 'gathabbrev': 'IN', - 'gathname':'Invasion', - }, - 'PS':{'name':'Planeshift', - 'dir':'PS', - 'abbrev':'PS', - 'gathabbrev': 'PS', - 'gathname':'Planeshift', - }, - 'AP':{'name':'Apocalypse', - 'dir':'AP', - 'abbrev':'AP', - 'gathabbrev': 'AP', - 'gathname':'Apocalypse', - }, - 'OD':{'name':'Odyssey', - 'dir':'OD', - 'abbrev':'OD', - 'gathabbrev': 'OD', - 'gathname':'Odyssey', - }, - 'TO':{'name':'Torment', - 'dir':'TO', - 'abbrev':'TO', - 'gathabbrev': 'TOR', - 'gathname':'Torment', - }, - 'JD':{'name':'Judgment', - 'dir':'JD', - 'abbrev':'JD', - 'gathabbrev': 'JUD', - 'gathname':'Judgment', - }, - 'ON':{'name':'Onslaught', - 'dir':'ON', - 'abbrev':'ON', - 'gathabbrev': 'ONS', - 'gathname':'Onslaught', - }, - 'LE':{'name':'Legions', - 'dir':'LE', - 'abbrev':'LE', - 'gathabbrev': 'LGN', - 'gathname':'Legions', - }, - 'SC':{'name':'Scourge', - 'dir':'SC', - 'abbrev':'SC', - 'gathabbrev': 'SCG', - 'gathname':'Scourge', - }, - 'MR':{'name':'Mirrodin', - 'dir':'MR', - 'abbrev':'MR', - 'gathabbrev': 'MRD', - 'gathname':'Mirrodin', - }, - 'DS':{'name':'Darksteel', - 'dir':'DS', - 'abbrev':'DS', - 'gathabbrev': 'DST', - 'gathname':'Darksteel', - }, - 'FD':{'name':'Fifth Dawn', - 'dir':'FD', - 'abbrev':'FD', - 'gathabbrev': '5DN', - 'gathname':'FifthDawn', - }, - 'CK':{'name':'Champions of Kamigawa', - 'dir':'CK', - 'abbrev':'CK', - 'gathabbrev': 'CHK', - 'gathname':'ChampionsofKamigawa', - }, - 'BK':{'name':'Betrayers of Kamigawa', - 'dir':'BK', - 'abbrev':'BK', - 'gathabbrev': 'BOK', - 'gathname':'BetrayersofKamigawa', - }, - 'SK':{'name':'Saviors of Kamigawa', - 'dir':'SK', - 'abbrev':'SK', - 'gathabbrev': 'SOK', - 'gathname':'SaviorsofKamigawa', - }, - 'RA':{'name':'Ravnica: City of Guilds', - 'dir':'RA', - 'abbrev':'RA', - 'gathabbrev': 'RAV', - 'gathname':'RavnicaCityofGuilds', - }, - 'GP':{'name':'Guildpact', - 'dir':'GP', - 'abbrev':'GP', - 'gathabbrev': 'GPT', - 'gathname':'Guildpact', - }, - 'DI':{'name':'Dissension', - 'dir':'DI', - 'abbrev':'DI', - 'gathabbrev': 'DIS', - 'gathname':'Dissension', - }, - 'CS':{'name':'Coldsnap', - 'dir':'CS', - 'abbrev':'CS', - 'gathabbrev':'CSP', - 'gathname':'Coldsnap', - }, - 'TS':{'name':'Time Spiral', - 'gathname':'TimeSpiralBlock', - 'gathabbrev':'(?:(?:TSP)|(?:TSB))', - 'dir':'TS', - 'abbrev':'TS', - 'gathdirs' : ('TSP','TSB'), - }, - 'PC':{'name':'Planar Chaos', - 'gathname':'Planar%20Chaos', - 'gathabbrev':'PLC', - 'dir':'PC', - 'abbrev':'PC', - }, - 'S1':{'name':'Starter 1999', - 'gathname':'Starter%201999', - 'gathabbrev':'P3', - 'gathdirs':['P3'], - 'dir':'S1', - 'abbrev':'S1' - }, - 'S2':{'name':'Starter 2000', - 'gathname':'Starter%202000', - 'gathabbrev':'P4', - 'dir':'S1', - 'abbrev':'S1' - }, - 'FS':{'name':'Future Sight', - 'gathname':'Future%20Sight', - 'gathabbrev':'FUT', - 'gathdirs':['FUT'], - 'dir':'FS', - 'abbrev':'FS' - }, - } - -def maketransU(s1, s2, todel=""): - trans_tab = dict( zip( map(ord, s1), map(ord, s2) ) ) - trans_tab.update( (ord(c),None) for c in todel ) - return trans_tab - -imagetrans = maketransU(u'\xe2\xea\xee\xf4\xfb\xe1\xe9\xed\xf3\xfa\xfd\xe4\xeb\xef\xf6\xfc\xff\xe5\xc2\xca\xce\xd4\xdb\xc1\xc9\xcd\xd3\xda\xdd\xc4\xcb\xcf\xd6\xdc\xc5',u'aeiouaeiouyaeiouyaAEIOUAEIOUYAEIOUA',u"'/,. &;!") -imagetrans[198]=u'AE' - -nametrans = maketransU(u'\xe2\xea\xee\xf4\xfb\xe1\xe9\xed\xf3\xfa\xfd\xe4\xeb\xef\xf6\xfc\xff\xe5\xc2\xca\xce\xd4\xdb\xc1\xc9\xcd\xd3\xda\xdd\xc4\xcb\xcf\xd6\xdc\xc5',u'aeiouaeiouyaeiouyaAEIOUAEIOUYAEIOUA') -nametrans[198]=u'AE' - -cleanuptrans = {ord(u'\r'):u' ', - ord(u'"'):u'"', - ord(u'\u2018'):ord(u'\''), - ord(u'&'):u'&', - } - -colorSymbols = {'red':'R', - 'green' : 'G', - 'blue':'U', - 'black':'B', - 'white':'W'} -symbolColors = dict([reversed(a) for a in colorSymbols.items()]) -basic_lands = ('Mountain','Forest','Island','Swamp','Plains') -color_re = re.compile(".*(?P[Rr]ed|[Gg]reen|[Bb]lue|[Bb]lack|[Ww]hite).*") -mana_re = re.compile(".*Symbol_(?P.*)_mana\.gif.*") -tap_re = re.compile(".*tap.gif.*") -basicLand_re = re.compile("\[(?P.)\]") -split_re = re.compile("(?P.*) // (?P.*) (?P\{.*\}) (?P.*) (?P.*)") -id_re = re.compile(".*id=(?P\d*).*") -reminder_re = re.compile('(\A[^\(]*)|((?<=\))[^\(]*)') - -_stripReminderText = True; - -def replaceSymbols(soup): - for symbol in soup.findAll('img'): - m = color_re.match(str(symbol['src'])) - if m: - s = colorSymbols[m.group('color').lower()] - symbol.replaceWith('{' + s + '}') - - m = mana_re.match(str(symbol)) - if m: - if m.group('type') == "Snow": - symbol.replaceWith('{S}') - else: - symbol.replaceWith('{' + m.group('type') + '}') - - m = tap_re.match(str(symbol)) - if m: - symbol.replaceWith('{T}') - - return soup - - -def getCardTypes(soup): - types = [t.strip() - for t in soup('td')[2]('font')[0].string.split('-',1)] - if (len(types) == 2): - supertype = types[0] - subtype = types[1] - else: - supertype = types[0] - subtype = '' - # replace entities, since gccg doesn't undertand them in attributes - subtype = subtype.replace("â", u"\342") - - return supertype, subtype - - -def cleanupHTMLText(htmlText, stripReminder = _stripReminderText): - for i in htmlText.findAll('br'): - i.replaceWith(' ') - for i in htmlText.findAll('i'): - i.replaceWith(''.join(i.contents)) - for i in htmlText.findAll('b'): - i.replaceWith(''.join(i.contents)) - - text = htmlText('font')[0].renderContents(None) - # add text for Basic Land - m = basicLand_re.match(text) - if m: - text = u"{T}: Add {" + m.group('mana') + u"} to your mana pool." - if text == u" ": - text = u"" - - text = text.translate(cleanuptrans) - - if stripReminder: - text = ''.join([''.join(m) for m in reminder_re.findall(text)]) - - return text - +from BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag +import re +import codecs +import sys + +sets ={'BE':{'name':'Beta', + 'dir':'BE', + 'abbrev':'BE', + 'gathabbrev': '2E', + 'gathname':'LimitedEditionBeta', + }, + 'RV':{'name':'Revised', + 'dir':'RV', + 'abbrev':'RV', + 'gathdirs':['3E/en-us'], + 'gathabbrev': '3E', + 'gathname':'RevisedEdition' + }, + '4E':{'name':'4th Edition', + 'dir':'4E', + 'abbrev':'4E', + 'gathdirs':['4E/en-us'], + 'gathabbrev': '4E', + 'gathname':'FourthEdition', + }, + '5E':{'name':'5th Edition', + 'dir':'5E', + 'abbrev':'5E', + 'gathdirs':['5E/en-us'], + 'gathabbrev': '5E', + 'gathname':'FifthEdition' + }, + '6E':{'name':'6th Edition', + 'dir':'6E', + 'abbrev':'6E', + 'gathdirs':['6E/en-us'], + 'gathabbrev': '6E', + 'gathname':'ClassicSixthEdition', + }, + '7E':{'name':'7th Edition', + 'dir':'7E', + 'abbrev':'7E', + 'gathdirs':['7E/en-us'], + 'gathabbrev': '7E', + 'gathname':'SeventhEdition', + }, + '8E':{'name':'8th Edition', + 'dir':'8E', + 'abbrev':'8E', + 'gathdirs':['8ED/en-us'], + 'gathabbrev': '8ED', + 'gathname':'EighthEdition', + }, + '9E':{'name':'9th Edition', + 'dir':'9E', + 'abbrev':'9E', + 'gathdirs':['9ED/en-us'], + 'gathabbrev': '9ED', + 'gathname':'NinthEdition', + }, + '10E':{'name':'10th Edition', + 'dir':'10E', + 'abbrev':'10E', + 'gathdirs':['10E/EN'], + 'gathabbrev': '10E', + 'gathname':'TenthEdition', + }, + 'EVE':{'name':'Eventide', + 'dir':'EVE', + 'abbrev':'EVE', + 'gathdirs':['EVE/EN'], + 'gathabbrev': 'EVE', + 'gathname':'Eventide', + }, + 'SHM':{'name':'Shadowmoor', + 'dir':'SHM', + 'abbrev':'SHM', + 'gathdirs':['SHM/EN'], + 'gathabbrev': 'SHM', + 'gathname':'Shadowmoor', + }, + 'ALA':{'name':'Shards of Alara', + 'dir':'ALA', + 'abbrev':'ALA', + 'gathdirs':['ALA/EN'], + 'gathabbrev': 'ALA', + 'gathname':'ShardsOfAlara', + }, + 'UH':{'name':'Unhinged', + 'dir':'UH', + 'abbrev':'UH', + 'gathdirs':['UNH/en-us'], + 'gathabbrev': 'UNH', + 'gathname':'Unhinged', + }, + 'UG':{'name':'Unglued', + 'dir':'UG', + 'abbrev':'UG', + 'gathdirs':['UG/en-us'], + 'gathabbrev':'UG', + 'gathname':'Unglued', + }, + 'P1':{'name':'Portal', + 'dir':'P1', + 'abbrev':'P1', + 'gathdirs':['P1/en-us'], + 'gathabbrev':'P1', + 'gathname':'Portal', + }, + 'P2':{'name':'Portal Second Age', + 'dir':'P2', + 'abbrev':'P2', + 'gathdirs':['P2/en-us'], + 'gathabbrev':'P2', + 'gathname':'PortalSecondAge', + }, + 'P3':{'name':'Portal Three Kingdoms', + 'dir':'P3', + 'abbrev':'P3', + 'gathdirs':['PK/en-us'], + 'gathabbrev': 'PK', + 'gathname':'PortalThreeKingdoms', + }, + 'AN':{'name':'Arabian Nights', + 'dir':'AN', + 'abbrev':'AN', + 'gathdirs':['AN/en-us'], + 'gathabbrev': 'AN', + 'gathname':'ArabianNights' + }, + 'AQ':{'name':'Antiquities', + 'dir':'AQ', + 'abbrev':'AQ', + 'gathdirs':['AQ/en-us'], + 'gathabbrev': 'AQ', + 'gathname':'Antiquities', + }, + 'LG':{'name':'Legends', + 'dir':'LG', + 'abbrev':'LG', + 'gathdirs':['LG/en-us'], + 'gathabbrev': 'LE', + 'gathname':'Legends', + }, + 'DK':{'name':'The Dark', + 'dir':'DK', + 'abbrev':'DK', + 'gathdirs':['DK/en-us'], + 'gathabbrev': 'DK', + 'gathname':'TheDark', + }, + 'FE':{'name':'Fallen Empires', + 'dir':'FE', + 'abbrev':'FE', + 'gathdirs':['FE/en-us'], + 'gathabbrev': 'FE', + 'gathname':'FallenEmpires', + }, + 'IA':{'name':'Ice Age', + 'dir':'IA', + 'abbrev':'IA', + 'gathdirs':['IA/en-us'], + 'gathabbrev': 'IA', + 'gathname':'IceAge', + }, + 'HL':{'name':'Homelands', + 'dir':'HL', + 'abbrev':'HL', + 'gathdirs':['HM/en-us'], + 'gathabbrev': 'HM', + 'gathname':'Homelands' + }, + 'AL':{'name':'Alliances', + 'dir':'AL', + 'abbrev':'AL', + 'gathdirs':['AL/en-us'], + 'gathabbrev': 'AL', + 'gathname':'Alliances', + }, + 'MI':{'name':'Mirage', + 'dir':'MI', + 'abbrev':'MI', + 'gathdirs':['MI/en-us'], + 'gathabbrev': 'MI', + 'gathname':'Mirage', + }, + 'VI':{'name':'Visions', + 'dir':'VI', + 'abbrev':'VI', + 'gathabbrev': 'VI', + 'gathname':'Visions', + }, + 'WL':{'name':'Weatherlight', + 'dir':'WL', + 'abbrev':'WL', + 'gathabbrev': 'WL', + 'gathname':'Weatherlight', + }, + 'TE':{'name':'Tempest', + 'dir':'TE', + 'abbrev':'TE', + 'gathabbrev': 'TE', + 'gathname':'Tempest', + }, + 'SH':{'name':'Stronghold', + 'dir':'SH', + 'abbrev':'SH', + 'gathabbrev': 'ST', + 'gathname':'Stronghold', + }, + 'EX':{'name':'Exodus', + 'dir':'EX', + 'abbrev':'EX', + 'gathabbrev': 'EX', + 'gathname':'Exodus', + }, + 'US':{'name':'Urza\'s Saga', + 'dir':'US', + 'abbrev':'US', + 'gathabbrev': 'UZ', + 'gathname':'UrzasSaga', + }, + 'UL':{'name':'Urza\'s Legacy', + 'dir':'UL', + 'abbrev':'UL', + 'gathabbrev': 'GU', + 'gathname':'UrzasDestiny', + }, + 'UD':{'name':'Urza\'s Destiny', + 'dir':'UD', + 'abbrev':'UD', + 'gathabbrev': 'CG', + 'gathname':'UrzasLegacy', + }, + 'MM':{'name':'Mercadian Masques', + 'dir':'MM', + 'abbrev':'MM', + 'gathabbrev': 'MM', + 'gathname':'MercadianMasques', + }, + 'NE':{'name':'Nemesis', + 'dir':'NE', + 'abbrev':'NE', + 'gathabbrev': 'NE', + 'gathname':'Nemesis', + }, + 'PY':{'name':'Prophecy', + 'dir':'PY', + 'abbrev':'PY', + 'gathabbrev': 'PR', + 'gathname':'Prophecy', + }, + 'IN':{'name':'Invasion', + 'dir':'IN', + 'abbrev':'IN', + 'gathabbrev': 'IN', + 'gathname':'Invasion', + }, + 'PS':{'name':'Planeshift', + 'dir':'PS', + 'abbrev':'PS', + 'gathabbrev': 'PS', + 'gathname':'Planeshift', + }, + 'AP':{'name':'Apocalypse', + 'dir':'AP', + 'abbrev':'AP', + 'gathabbrev': 'AP', + 'gathname':'Apocalypse', + }, + 'OD':{'name':'Odyssey', + 'dir':'OD', + 'abbrev':'OD', + 'gathabbrev': 'OD', + 'gathname':'Odyssey', + }, + 'TO':{'name':'Torment', + 'dir':'TO', + 'abbrev':'TO', + 'gathabbrev': 'TOR', + 'gathname':'Torment', + }, + 'JD':{'name':'Judgment', + 'dir':'JD', + 'abbrev':'JD', + 'gathabbrev': 'JUD', + 'gathname':'Judgment', + }, + 'ON':{'name':'Onslaught', + 'dir':'ON', + 'abbrev':'ON', + 'gathabbrev': 'ONS', + 'gathname':'Onslaught', + }, + 'LE':{'name':'Legions', + 'dir':'LE', + 'abbrev':'LE', + 'gathabbrev': 'LGN', + 'gathname':'Legions', + }, + 'SC':{'name':'Scourge', + 'dir':'SC', + 'abbrev':'SC', + 'gathabbrev': 'SCG', + 'gathname':'Scourge', + }, + 'MR':{'name':'Mirrodin', + 'dir':'MR', + 'abbrev':'MR', + 'gathabbrev': 'MRD', + 'gathname':'Mirrodin', + }, + 'DS':{'name':'Darksteel', + 'dir':'DS', + 'abbrev':'DS', + 'gathabbrev': 'DST', + 'gathname':'Darksteel', + }, + 'FD':{'name':'Fifth Dawn', + 'dir':'FD', + 'abbrev':'FD', + 'gathabbrev': '5DN', + 'gathname':'FifthDawn', + }, + 'CK':{'name':'Champions of Kamigawa', + 'dir':'CK', + 'abbrev':'CK', + 'gathdirs':['CHK/en-us'], + 'gathabbrev': 'CHK', + 'gathname':'ChampionsofKamigawa', + }, + 'BK':{'name':'Betrayers of Kamigawa', + 'dir':'BK', + 'abbrev':'BK', + 'gathabbrev': 'BOK', + 'gathname':'BetrayersofKamigawa', + }, + 'SK':{'name':'Saviors of Kamigawa', + 'dir':'SK', + 'abbrev':'SK', + 'gathabbrev': 'SOK', + 'gathname':'SaviorsofKamigawa', + }, + 'RA':{'name':'Ravnica: City of Guilds', + 'dir':'RA', + 'abbrev':'RA', + 'gathabbrev': 'RAV', + 'gathname':'RavnicaCityofGuilds', + }, + 'GP':{'name':'Guildpact', + 'dir':'GP', + 'abbrev':'GP', + 'gathabbrev': 'GPT', + 'gathname':'Guildpact', + }, + 'DI':{'name':'Dissension', + 'dir':'DI', + 'abbrev':'DI', + 'gathabbrev': 'DIS', + 'gathname':'Dissension', + }, + 'CS':{'name':'Coldsnap', + 'dir':'CS', + 'abbrev':'CS', + 'gathabbrev':'CSP', + 'gathname':'Coldsnap', + }, + 'TS':{'name':'Time Spiral', + 'gathname':'TimeSpiralBlock', + 'gathabbrev':'(?:(?:TSP)|(?:TSB))', + 'dir':'TS', + 'abbrev':'TS', + 'gathdirs' : ('TSP','TSB'), + }, + 'PC':{'name':'Planar Chaos', + 'gathname':'Planar%20Chaos', + 'gathabbrev':'PLC', + 'dir':'PC', + 'abbrev':'PC', + }, + 'S1':{'name':'Starter 1999', + 'gathname':'Starter%201999', + 'gathabbrev':'P3', + 'gathdirs':['P3'], + 'dir':'S1', + 'abbrev':'S1' + }, + 'S2':{'name':'Starter 2000', + 'gathname':'Starter%202000', + 'gathabbrev':'P4', + 'dir':'S1', + 'abbrev':'S1' + }, + 'FS':{'name':'Future Sight', + 'gathname':'Future%20Sight', + 'gathabbrev':'FUT', + 'gathdirs':['FUT'], + 'dir':'FS', + 'abbrev':'FS' + }, + } + +def maketransU(s1, s2, todel=""): + trans_tab = dict( zip( map(ord, s1), map(ord, s2) ) ) + trans_tab.update( (ord(c),None) for c in todel ) + return trans_tab + +imagetrans = maketransU(u'\xe2\xea\xee\xf4\xfb\xe1\xe9\xed\xf3\xfa\xfd\xe4\xeb\xef\xf6\xfc\xff\xe5\xc2\xca\xce\xd4\xdb\xc1\xc9\xcd\xd3\xda\xdd\xc4\xcb\xcf\xd6\xdc\xc5',u'aeiouaeiouyaeiouyaAEIOUAEIOUYAEIOUA',u"'/,. &;!") +imagetrans[198]=u'AE' + +nametrans = maketransU(u'\xe2\xea\xee\xf4\xfb\xe1\xe9\xed\xf3\xfa\xfd\xe4\xeb\xef\xf6\xfc\xff\xe5\xc2\xca\xce\xd4\xdb\xc1\xc9\xcd\xd3\xda\xdd\xc4\xcb\xcf\xd6\xdc\xc5',u'aeiouaeiouyaeiouyaAEIOUAEIOUYAEIOUA') +nametrans[198]=u'AE' + +cleanuptrans = {ord(u'\r'):u' ', + ord(u'"'):u'"', + ord(u'\u2018'):ord(u'\''), + ord(u'&'):u'&', + } + +colorSymbols = {'red':'R', + 'green' : 'G', + 'blue':'U', + 'black':'B', + 'white':'W'} +symbolColors = dict([reversed(a) for a in colorSymbols.items()]) +basic_lands = ('Mountain','Forest','Island','Swamp','Plains') +color_re = re.compile(".*(?P[Rr]ed|[Gg]reen|[Bb]lue|[Bb]lack|[Ww]hite).*") +mana_re = re.compile(".*Symbol_(?P.*)_mana\.gif.*") +tap_re = re.compile(".*tap.gif.*") +basicLand_re = re.compile("\[(?P.)\]") +split_re = re.compile("(?P.*) // (?P.*) (?P\{.*\}) (?P.*) (?P.*)") +id_re = re.compile(".*id=(?P\d*).*") +reminder_re = re.compile('(\A[^\(]*)|((?<=\))[^\(]*)') + +_stripReminderText = True; + +def replaceSymbols(soup): + for symbol in soup.findAll('img'): + m = color_re.match(str(symbol['src'])) + if m: + s = colorSymbols[m.group('color').lower()] + symbol.replaceWith('{' + s + '}') + + m = mana_re.match(str(symbol)) + if m: + if m.group('type') == "Snow": + symbol.replaceWith('{S}') + else: + symbol.replaceWith('{' + m.group('type') + '}') + + m = tap_re.match(str(symbol)) + if m: + symbol.replaceWith('{T}') + + return soup + + +def getCardTypes(soup): + types = [t.strip() + for t in soup('td')[2]('font')[0].string.split('-',1)] + if (len(types) == 2): + supertype = types[0] + subtype = types[1] + else: + supertype = types[0] + subtype = '' + # replace entities, since gccg doesn't undertand them in attributes + subtype = subtype.replace("â", u"\342") + + return supertype, subtype + + +def cleanupHTMLText(htmlText, stripReminder = _stripReminderText): + for i in htmlText.findAll('br'): + i.replaceWith(' ') + for i in htmlText.findAll('i'): + i.replaceWith(''.join(i.contents)) + for i in htmlText.findAll('b'): + i.replaceWith(''.join(i.contents)) + + text = htmlText('font')[0].renderContents(None) + # add text for Basic Land + m = basicLand_re.match(text) + if m: + text = u"{T}: Add {" + m.group('mana') + u"} to your mana pool." + if text == u" ": + text = u"" + + text = text.translate(cleanuptrans) + + if stripReminder: + text = ''.join([''.join(m) for m in reminder_re.findall(text)]) + + return text +