From 358c0f5c26ba01d3b1ec875d19b925974e506117 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= Date: Fri, 30 Oct 2015 19:51:52 +0100 Subject: [PATCH] New package: SMC-1.9 One of #2097: Secret Maryo Chronicles --- srcpkgs/SMC-data | 1 + srcpkgs/SMC/files/smc.desktop | 9 + srcpkgs/SMC/files/smc.png | Bin 0 -> 2961 bytes .../SMC/patches/fix-boost_filesystem.patch | 112 +++++ srcpkgs/SMC/patches/fix-cegui07.patch | 437 ++++++++++++++++++ srcpkgs/SMC/template | 44 ++ 6 files changed, 603 insertions(+) create mode 120000 srcpkgs/SMC-data create mode 100644 srcpkgs/SMC/files/smc.desktop create mode 100644 srcpkgs/SMC/files/smc.png create mode 100644 srcpkgs/SMC/patches/fix-boost_filesystem.patch create mode 100644 srcpkgs/SMC/patches/fix-cegui07.patch create mode 100644 srcpkgs/SMC/template diff --git a/srcpkgs/SMC-data b/srcpkgs/SMC-data new file mode 120000 index 00000000000..cc8794649c1 --- /dev/null +++ b/srcpkgs/SMC-data @@ -0,0 +1 @@ +SMC \ No newline at end of file diff --git a/srcpkgs/SMC/files/smc.desktop b/srcpkgs/SMC/files/smc.desktop new file mode 100644 index 00000000000..9b7d84a0c2c --- /dev/null +++ b/srcpkgs/SMC/files/smc.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Name=Secret Maryo Chronicles +Exec=smc +Icon=smc +Terminal=false +Categories=Game;ArcadeGame; +StartupNotify=false + diff --git a/srcpkgs/SMC/files/smc.png b/srcpkgs/SMC/files/smc.png new file mode 100644 index 0000000000000000000000000000000000000000..f02af1bfc0fbabca40d331dc05cc8c4d9f4821a9 GIT binary patch literal 2961 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 1.5 renamed path::leaf() to path::filename(). +Function path(const string_type&, name_check) was removed, +thus here we use path(const string_type&). + +--- src/core/filesystem/filesystem.cpp 2015-10-30 19:17:02.512620204 +0100 ++++ src/core/filesystem/filesystem.cpp 2015-10-30 19:17:57.036620043 +0100 +@@ -64,7 +64,7 @@ + + bool Dir_Exists( const std::string &dir ) + { +- return fs::exists( fs::path( dir, fs::native ) ); ++ return fs::exists( fs::path( dir ) ); + + /*struct stat file_info; + +@@ -89,7 +89,7 @@ + + bool Create_Directory( const std::string &dir ) + { +- return fs::create_directory( fs::path( dir, fs::native ) ); ++ return fs::create_directory( fs::path( dir ) ); + } + + size_t Get_File_Size( const std::string &filename ) +@@ -130,7 +130,7 @@ + { + vector valid_files; + +- fs::path full_path( dir, fs::native ); ++ fs::path full_path( dir ); + fs::directory_iterator end_iter; + + // load all available objects +@@ -142,32 +142,32 @@ + if( fs::is_directory( *dir_itr ) ) + { + // ignore hidden directories +- if( dir_itr->path().leaf().find( "." ) == 0 ) ++ if( dir_itr->path().filename().string().find( "." ) == 0 ) + { + continue; + } + + if( with_directories ) + { +- valid_files.push_back( dir + "/" + dir_itr->path().leaf() ); ++ valid_files.push_back( dir + "/" + dir_itr->path().filename().string() ); + } + + // load all items from the sub-directory + if( search_in_sub_directories ) + { +- vector new_valid_files = Get_Directory_Files( dir + "/" + dir_itr->path().leaf(), file_type, with_directories ); ++ vector new_valid_files = Get_Directory_Files( dir + "/" + dir_itr->path().filename().string(), file_type, with_directories ); + valid_files.insert( valid_files.end(), new_valid_files.begin(), new_valid_files.end() ); + } + } + // valid file +- else if( file_type.empty() || dir_itr->path().leaf().rfind( file_type ) != std::string::npos ) ++ else if( file_type.empty() || dir_itr->path().filename().string().rfind( file_type ) != std::string::npos ) + { +- valid_files.push_back( dir + "/" + dir_itr->path().leaf() ); ++ valid_files.push_back( dir + "/" + dir_itr->path().filename().string() ); + } + } + catch( const std::exception &ex ) + { +- printf( "%s %s\n", dir_itr->path().leaf().c_str(), ex.what() ); ++ printf( "%s %s\n", dir_itr->path().filename().c_str(), ex.what() ); + } + } + +--- src/overworld/world_manager.cpp 2015-10-30 19:17:02.649620204 +0100 ++++ src/overworld/world_manager.cpp 2015-10-30 18:30:23.299628497 +0100 +@@ -111,7 +111,7 @@ + void cOverworld_Manager :: Load_Dir( const std::string &dir, bool user_dir /* = 0 */ ) + { + // set world directory +- fs::path full_path( dir, fs::native ); ++ fs::path full_path( dir ); + fs::directory_iterator end_iter; + + for( fs::directory_iterator dir_itr( full_path ); dir_itr != end_iter; ++dir_itr ) +@@ -118,7 +118,7 @@ + { + try + { +- std::string current_dir = dir_itr->path().leaf(); ++ std::string current_dir = dir_itr->path().filename().string(); + + // only directories with an existing description + if( fs::is_directory( *dir_itr ) && File_Exists( dir + "/" + current_dir + "/description.xml" ) ) +--- src/video/video.cpp 2015-10-30 19:17:02.822620203 +0100 ++++ src/video/video.cpp 2015-10-30 19:18:57.493619864 +0100 +@@ -747,7 +747,7 @@ + { + try + { +- fs::remove_all( fs::path( m_imgcache_dir, fs::native ) ); ++ fs::remove_all( fs::path( m_imgcache_dir ) ); + } + // could happen if a file is locked or we have no write rights + catch( const std::exception &ex ) +@@ -769,7 +769,7 @@ + // no cache available + if( !Dir_Exists( imgcache_dir_active ) ) + { +- fs::create_directories( fs::path( imgcache_dir_active + "/" GAME_PIXMAPS_DIR, fs::native ) ); ++ fs::create_directories( fs::path( imgcache_dir_active + "/" GAME_PIXMAPS_DIR ) ); + } + // cache available + else diff --git a/srcpkgs/SMC/patches/fix-cegui07.patch b/srcpkgs/SMC/patches/fix-cegui07.patch new file mode 100644 index 00000000000..20d962e404c --- /dev/null +++ b/srcpkgs/SMC/patches/fix-cegui07.patch @@ -0,0 +1,437 @@ +diff -ur smc-1.9/configure.ac smc-1.9-b/configure.ac +--- configure.ac 2009-08-17 15:59:00.000000000 +0200 ++++ configure.ac 2011-01-19 00:43:37.809884881 +0100 +@@ -53,7 +53,7 @@ + AC_MSG_ERROR([SDL_ttf library not found])) + + # Check for the CEGUI library +-PKG_CHECK_MODULES(CEGUI, CEGUI-OPENGL >= 0.5.0) ++PKG_CHECK_MODULES(CEGUI, CEGUI-OPENGL >= 0.7.0) + CPPFLAGS="$CPPFLAGS $CEGUI_CFLAGS" + LIBS="$LIBS $CEGUI_LIBS" + +diff -ur smc-1.9/src/core/editor.cpp smc-1.9-b/src/core/editor.cpp +--- src/core/editor.cpp 2009-08-13 17:11:42.000000000 +0200 ++++ src/core/editor.cpp 2011-01-19 00:44:46.734328121 +0100 +@@ -118,16 +118,10 @@ + return tmp; + } + +-void cEditor_Item_Object :: draw( const CEGUI::Vector3 &position, float alpha, const CEGUI::Rect &clipper ) const ++void cEditor_Item_Object :: draw( CEGUI::GeometryBuffer &buffer, const CEGUI::Rect &targetRect, float alpha, const CEGUI::Rect *clipper ) const + { + // draw text +- list_text->draw( position, alpha, clipper ); +-} +- +-void cEditor_Item_Object :: draw( CEGUI::RenderCache &cache, const CEGUI::Rect &targetRect, float zBase, float alpha, const CEGUI::Rect *clipper ) const +-{ +- // draw text +- list_text->draw( cache, targetRect, zBase, alpha, clipper ); ++ list_text->draw( buffer, targetRect, alpha, clipper ); + } + + void cEditor_Item_Object :: Draw_Image( void ) +@@ -533,12 +527,12 @@ + if( editor_window->getXPosition().asRelative( 1 ) >= 0 ) + { + // Listbox dimension +- float list_posy = listbox_items->getUnclippedPixelRect().d_top * global_downscaley; +- float list_height = listbox_items->getUnclippedPixelRect().getHeight() * global_downscaley; ++ float list_posy = listbox_items->getUnclippedOuterRect().d_top * global_downscaley; ++ float list_height = listbox_items->getUnclippedOuterRect().getHeight() * global_downscaley; + // Vertical ScrollBar Position + float scroll_pos = listbox_items->getVertScrollbar()->getScrollPosition() * global_downscaley; + // font height +- float font_height = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" )->getFontHeight() * global_downscaley; ++ float font_height = CEGUI::FontManager::getSingleton().get( "bluebold_medium" ).getFontHeight() * global_downscaley; + + // draw items + for( unsigned int i = 0; i < listbox_items->getItemCount(); i++ ) +diff -ur smc-1.9/src/core/editor.h smc-1.9-b/src/core/editor.h +--- src/core/editor.h 2009-02-18 05:21:30.000000000 +0100 ++++ src/core/editor.h 2011-01-19 00:43:37.809884881 +0100 +@@ -62,8 +62,7 @@ + */ + virtual CEGUI::Size getPixelSize( void ) const; + // draw +- void draw( const CEGUI::Vector3 &position, float alpha, const CEGUI::Rect &clipper ) const; +- void draw( CEGUI::RenderCache &cache, const CEGUI::Rect &targetRect, float zBase, float alpha, const CEGUI::Rect *clipper) const; ++ void draw(CEGUI::GeometryBuffer& buffer, const CEGUI::Rect& targetRect, float alpha, const CEGUI::Rect* clipper) const; + // draw image + void Draw_Image( void ); + +diff -ur smc-1.9/src/core/game_core.cpp smc-1.9-b/src/core/game_core.cpp +--- src/core/game_core.cpp 2009-08-16 18:44:42.000000000 +0200 ++++ src/core/game_core.cpp 2011-01-19 00:59:02.668958883 +0100 +@@ -265,7 +265,7 @@ + + + // align text +- CEGUI::Font *font = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" ); ++ CEGUI::Font *font = &CEGUI::FontManager::getSingleton().get( "bluebold_medium" ); + // fixme : Can't handle multiple lines of text + float text_width = font->getTextExtent( text ) * global_downscalex; + +@@ -1182,7 +1182,7 @@ + text_default->setText( gui_text ); + + // align text +- CEGUI::Font *font = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" ); ++ CEGUI::Font *font = &CEGUI::FontManager::getSingleton().get( "bluebold_medium" ); + float text_width = font->getTextExtent( gui_text ) * global_downscalex; + + text_default->setWidth( CEGUI::UDim( 0, ( text_width + 15 ) * global_upscalex ) ); +@@ -1190,7 +1190,7 @@ + text_default->moveToFront(); + + // set window height +- text_default->setHeight( CEGUI::UDim( 0, font->getFontHeight() * font->getFormattedLineCount( gui_text, text_default->getUnclippedInnerRect(), CEGUI::LeftAligned ) + ( 12 * global_upscaley ) ) ); ++ text_default->setHeight( CEGUI::UDim( 0, font->getFontHeight() + ( 12 * global_upscaley ) ) ); + + while( draw ) + { +diff -ur smc-1.9/src/core/main.cpp smc-1.9-b/src/core/main.cpp +--- src/core/main.cpp 2009-05-12 10:36:04.000000000 +0200 ++++ src/core/main.cpp 2011-01-19 00:43:37.809884881 +0100 +@@ -444,13 +444,15 @@ + + if( pGuiSystem ) + { +- delete pGuiSystem; ++ CEGUI::ResourceProvider* rp = pGuiSystem->getResourceProvider(); ++ pGuiSystem->destroy(); + pGuiSystem = NULL; ++ delete rp; + } + + if( pGuiRenderer ) + { +- delete pGuiRenderer; ++ pGuiRenderer->destroy( *pGuiRenderer ); + pGuiRenderer = NULL; + } + +@@ -507,7 +509,7 @@ + } + case SDL_VIDEORESIZE: + { +- pGuiRenderer->setDisplaySize( CEGUI::Size( static_cast(ev->resize.w), static_cast(ev->resize.h) ) ); ++ pGuiSystem->notifyDisplaySizeChanged( CEGUI::Size( static_cast(ev->resize.w), static_cast(ev->resize.h) ) ); + break; + } + case SDL_KEYDOWN: +diff -ur smc-1.9/src/gui/hud.cpp smc-1.9-b/src/gui/hud.cpp +--- src/gui/hud.cpp 2009-05-01 15:00:16.000000000 +0200 ++++ src/gui/hud.cpp 2011-01-19 00:43:37.816550365 +0100 +@@ -946,7 +946,7 @@ + m_text_debug_text->setVisible( 1 ); + + // update position +- CEGUI::Font *font = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" ); ++ CEGUI::Font *font = &CEGUI::FontManager::getSingleton().get( "bluebold_medium" ); + float text_width = font->getTextExtent( gui_text ) * global_downscalex; + + if( text_width > 800.0f ) +diff -ur smc-1.9/src/input/mouse.cpp smc-1.9-b/src/input/mouse.cpp +--- src/input/mouse.cpp 2009-04-24 21:16:58.000000000 +0200 ++++ src/input/mouse.cpp 2011-01-19 00:43:37.813217623 +0100 +@@ -432,17 +432,12 @@ + + void cMouseCursor :: Render( void ) const + { +- if( !m_active ) +- { ++ CEGUI::MouseCursor *mouse = CEGUI::MouseCursor::getSingletonPtr(); ++ ++ if ( m_active == mouse->isVisible() ) + return; +- } + +- // Render CEGUI Mouse +- pGuiRenderer->setQueueingEnabled( 0 ); +- CEGUI::MouseCursor *mouse = CEGUI::MouseCursor::getSingletonPtr(); +- mouse->setVisible( 1 ); +- mouse->draw(); +- mouse->setVisible( 0 ); ++ mouse->setVisible( m_active ); + } + + void cMouseCursor :: Update_Position( void ) +diff -ur smc-1.9/src/level/level_settings.cpp smc-1.9-b/src/level/level_settings.cpp +--- src/level/level_settings.cpp 2009-08-07 03:04:28.000000000 +0200 ++++ src/level/level_settings.cpp 2011-01-19 01:06:59.064259070 +0100 +@@ -163,8 +163,8 @@ + editbox->setText( int_to_string( bg_color_2.blue ).c_str() ); + // preview window + CEGUI::Window *window_background_preview = CEGUI::WindowManager::getSingleton().getWindow( "window_background_preview" ); +- background_preview->Set_Pos_X( window_background_preview->getUnclippedPixelRect().d_left * global_downscalex, 1 ); +- background_preview->Set_Pos_Y( window_background_preview->getUnclippedPixelRect().d_top * global_downscaley, 1 ); ++ background_preview->Set_Pos_X( window_background_preview->getUnclippedOuterRect().d_left * global_downscalex, 1 ); ++ background_preview->Set_Pos_Y( window_background_preview->getUnclippedOuterRect().d_top * global_downscaley, 1 ); + + Update_BG_Colors( CEGUI::EventArgs() ); + +@@ -555,8 +555,8 @@ + + // set default rect + CEGUI::Window *window_background_preview = CEGUI::WindowManager::getSingleton().getWindow( "window_background_preview" ); +- background_preview->m_rect.m_w = window_background_preview->getUnclippedPixelRect().getWidth() * global_downscalex; +- background_preview->m_rect.m_h = window_background_preview->getUnclippedPixelRect().getHeight() * global_downscaley; ++ background_preview->m_rect.m_w = window_background_preview->getUnclippedOuterRect().getWidth() * global_downscalex; ++ background_preview->m_rect.m_h = window_background_preview->getUnclippedOuterRect().getHeight() * global_downscaley; + + if( !File_Exists( filename ) ) + { +diff -ur smc-1.9/src/objects/sprite.cpp smc-1.9-b/src/objects/sprite.cpp +--- src/objects/sprite.cpp 2009-04-18 09:55:06.000000000 +0200 ++++ src/objects/sprite.cpp 2011-01-19 00:43:37.813217623 +0100 +@@ -1663,7 +1663,7 @@ + window_name->setText( name ); + window_name->setTooltipText( tooltip ); + // get text width +- CEGUI::Font *font = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" ); ++ CEGUI::Font *font = &CEGUI::FontManager::getSingleton().get( "bluebold_medium" ); + float text_width = 12 + font->getTextExtent( name ) * global_downscalex; + // all names should have the same width + if( text_width > m_editor_window_name_width ) +diff -ur smc-1.9/src/video/video.cpp smc-1.9-b/src/video/video.cpp +--- src/video/video.cpp 2009-07-04 11:46:56.000000000 +0200 ++++ src/video/video.cpp 2011-01-19 01:22:45.338524592 +0100 +@@ -103,15 +103,15 @@ + + /* *** *** *** *** *** *** *** CEGUI renderer fake class *** *** *** *** *** *** *** *** *** *** */ + +-cFake_Renderer :: cFake_Renderer( void ) +-{ +- d_identifierString = "Fake Renderer"; +-} ++//cFake_Renderer :: cFake_Renderer( void ) ++//{ ++// d_identifierString = "Fake Renderer"; ++//} + +-cFake_Renderer :: ~cFake_Renderer( void ) +-{ ++//cFake_Renderer :: ~cFake_Renderer( void ) ++//{ + +-} ++//} + + /* *** *** *** *** *** *** *** Video class *** *** *** *** *** *** *** *** *** *** */ + +@@ -158,7 +158,7 @@ + std::string log_dump_dir = "/dev/null"; + #endif + // create fake system and renderer +- pGuiSystem = new CEGUI::System( new cFake_Renderer(), rp, NULL, NULL, "", log_dump_dir ); ++ pGuiSystem = &CEGUI::System::create( *new cFake_Renderer(), rp, NULL, NULL, NULL, "", log_dump_dir ); + } + + void cVideo :: Delete_CEGUI_Fake( void ) const +@@ -166,7 +166,7 @@ + CEGUI::ResourceProvider *rp = pGuiSystem->getResourceProvider(); + CEGUI::Renderer *renderer = pGuiSystem->getRenderer(); + +- delete pGuiSystem; ++ pGuiSystem->destroy(); + pGuiSystem = NULL; + delete renderer; + delete rp; +@@ -177,7 +177,7 @@ + // create renderer + try + { +- pGuiRenderer = new CEGUI::OpenGLRenderer( 0, screen->w, screen->h ); ++ pGuiRenderer = &CEGUI::OpenGLRenderer::create( CEGUI::Size( screen->w, screen->h ) ); + } + // catch CEGUI Exceptions + catch( CEGUI::Exception &ex ) +@@ -186,10 +186,10 @@ + exit( EXIT_FAILURE ); + } + +- /* create Resource Provider +- * no need to destroy it later since it is handled by the CEGUI renderer +- */ +- CEGUI::DefaultResourceProvider *rp = static_cast(pGuiRenderer->createResourceProvider()); ++ pGuiRenderer->enableExtraStateSettings(true); ++ ++ // create Resource Provider ++ CEGUI::DefaultResourceProvider *rp = new CEGUI::DefaultResourceProvider; + + // set Resource Provider directories + rp->setResourceGroupDirectory( "schemes", DATA_DIR "/" GUI_SCHEME_DIR "/" ); +@@ -215,7 +215,7 @@ + // create system + try + { +- pGuiSystem = new CEGUI::System( pGuiRenderer, rp, NULL, NULL, "", pResource_Manager->user_data_dir + "cegui.log" ); ++ pGuiSystem = &CEGUI::System::create( *pGuiRenderer, rp, NULL, NULL, NULL, "", pResource_Manager->user_data_dir + "cegui.log" ); + } + // catch CEGUI Exceptions + catch( CEGUI::Exception &ex ) +@@ -242,7 +242,7 @@ + // load the scheme file, which auto-loads the imageset + try + { +- CEGUI::SchemeManager::getSingleton().loadScheme( "TaharezLook.scheme" ); ++ CEGUI::SchemeManager::getSingleton().create( "TaharezLook.scheme" ); + } + // catch CEGUI Exceptions + catch( CEGUI::Exception &ex ) +@@ -254,9 +254,7 @@ + // default mouse cursor + pGuiSystem->setDefaultMouseCursor( "TaharezLook", "MouseArrow" ); + // force new mouse image +- CEGUI::MouseCursor::getSingleton().setImage( &CEGUI::ImagesetManager::getSingleton().getImageset( "TaharezLook" )->getImage( "MouseArrow" ) ); +- // hide CEGUI mouse always because we render it manually +- CEGUI::MouseCursor::getSingleton().hide(); ++ CEGUI::MouseCursor::getSingleton().setImage( &CEGUI::ImagesetManager::getSingleton().get( "TaharezLook" ).getImage( "MouseArrow" ) ); + // default tooltip + pGuiSystem->setDefaultTooltip( "TaharezLook/Tooltip" ); + // create default root window +@@ -553,7 +551,7 @@ + pFont->Restore_Textures(); + + // send new size to CEGUI +- pGuiRenderer->setDisplaySize( CEGUI::Size( static_cast(screen_w), static_cast(screen_h) ) ); ++ pGuiSystem->notifyDisplaySizeChanged( CEGUI::Size( static_cast(screen_w), static_cast(screen_h) ) ); + + // check if CEGUI is initialized + bool cegui_initialized = pGuiSystem->getGUISheet() != NULL; +diff -ur smc-1.9/src/video/video.h smc-1.9-b/src/video/video.h +--- src/video/video.h 2009-07-04 10:49:50.000000000 +0200 ++++ src/video/video.h 2011-01-19 01:16:42.791283379 +0100 +@@ -23,7 +23,7 @@ + #include "SDL_opengl.h" + // CEGUI + #include "CEGUI.h" +-#include "RendererModules/OpenGLGUIRenderer/openglrenderer.h" ++#include + + namespace SMC + { +@@ -129,31 +129,100 @@ + EFFECT_IN_AMOUNT + }; + +-/* *** *** *** *** *** *** *** CEGUI renderer fake class *** *** *** *** *** *** *** *** *** *** */ ++/* *** *** *** *** *** *** *** CEGUI renderer fake classes *** *** *** *** *** *** *** *** *** *** */ ++// CEGUI 0.7.x requires more 'fake' classes than the 0.6.x version did... ++class cFake_GeometryBuffer : public CEGUI::GeometryBuffer ++{ ++ void draw() const {} ++ void setTranslation(const CEGUI::Vector3&) {} ++ void setRotation(const CEGUI::Vector3&) {} ++ void setPivot(const CEGUI::Vector3&) {} ++ void setClippingRegion(const CEGUI::Rect&) {} ++ void appendVertex(const CEGUI::Vertex&) {} ++ void appendGeometry(const CEGUI::Vertex* const, CEGUI::uint) {} ++ void setActiveTexture(CEGUI::Texture*) {} ++ void reset() {} ++ CEGUI::Texture* getActiveTexture() const { return 0; } ++ CEGUI::uint getVertexCount() const { return 0; } ++ CEGUI::uint getBatchCount() const { return 0; } ++ void setRenderEffect(CEGUI::RenderEffect*) {} ++ CEGUI::RenderEffect* getRenderEffect() { return 0; } ++}; + +-class cFake_Renderer : public CEGUI::Renderer ++class cFake_Texture : public CEGUI::Texture ++{ ++public: ++ cFake_Texture() : ++ m_size(1, 1), ++ m_scaling(1, 1) {} ++ ++ const CEGUI::Size& getSize() const { return m_size; } ++ const CEGUI::Size& getOriginalDataSize() const { return m_size; } ++ const CEGUI::Vector2& getTexelScaling() const { return m_scaling; } ++ void loadFromFile(const CEGUI::String&, const CEGUI::String&) {} ++ void loadFromMemory(const void*, const CEGUI::Size&, CEGUI::Texture::PixelFormat) {} ++ void saveToMemory(void*) {} ++ ++private: ++ CEGUI::Size m_size; ++ CEGUI::Vector2 m_scaling; ++}; ++ ++class cFake_RenderTarget : public CEGUI::RenderTarget + { + public: +- cFake_Renderer( void ); +- virtual ~cFake_Renderer( void ); ++ cFake_RenderTarget() : m_area(0, 0, 0, 0) {} ++ void draw(const CEGUI::GeometryBuffer&) {} ++ void draw(const CEGUI::RenderQueue&) {} ++ void setArea(const CEGUI::Rect&) {} ++ const CEGUI::Rect& getArea() const { return m_area; } ++ bool isImageryCache() const { return false; } ++ void activate() {} ++ void deactivate() {} ++ void unprojectPoint(const CEGUI::GeometryBuffer&, const CEGUI::Vector2&, CEGUI::Vector2&) const {} ++ ++private: ++ CEGUI::Rect m_area; ++}; + +- virtual void addQuad(const CEGUI::Rect& dest_rect, float z, const CEGUI::Texture* tex, const CEGUI::Rect& texture_rect, const CEGUI::ColourRect& colours, CEGUI::QuadSplitMode quad_split_mode) {}; +- virtual void doRender(void) {}; +- virtual void clearRenderList(void) {}; +- virtual void setQueueingEnabled(bool setting) {}; +- virtual CEGUI::Texture *createTexture(void) { return NULL; }; +- virtual CEGUI::Texture *createTexture(const CEGUI::String& filename, const CEGUI::String& resourceGroup) { return NULL; }; +- virtual CEGUI::Texture *createTexture(float size) { return NULL; }; +- virtual void destroyTexture(CEGUI::Texture* texture) {}; +- virtual void destroyAllTextures(void) {}; +- virtual bool isQueueingEnabled(void) const { return 0; }; +- virtual float getWidth(void) const { return 0; }; +- virtual float getHeight(void) const { return 0; }; +- virtual CEGUI::Size getSize(void) const { return CEGUI::Size();}; +- virtual CEGUI::Rect getRect(void) const { return CEGUI::Rect();}; +- virtual unsigned int getMaxTextureSize(void) const { return 0; }; +- virtual unsigned int getHorzScreenDPI(void) const { return 0; }; +- virtual unsigned int getVertScreenDPI(void) const { return 0; }; ++class cFake_Renderer : public CEGUI::Renderer ++{ ++public: ++ cFake_Renderer( void ) : ++ m_size(0, 0), ++ m_dpi(0, 0), ++ m_identifierString("Fake Renderer"), ++ m_root(m_target) {} ++ ~cFake_Renderer( void ) {} ++ ++ CEGUI::RenderingRoot& getDefaultRenderingRoot() { return m_root; } ++ CEGUI::GeometryBuffer& createGeometryBuffer() { return m_geometry; } ++ void destroyGeometryBuffer(const CEGUI::GeometryBuffer&) {} ++ void destroyAllGeometryBuffers() {} ++ CEGUI::TextureTarget* createTextureTarget() { return 0; } ++ void destroyTextureTarget(CEGUI::TextureTarget*) {} ++ void destroyAllTextureTargets() {} ++ CEGUI::Texture& createTexture() { return m_texture; } ++ CEGUI::Texture& createTexture(const CEGUI::String&, const CEGUI::String&) { return m_texture; } ++ CEGUI::Texture& createTexture(const CEGUI::Size&) { return m_texture; } ++ void destroyTexture(CEGUI::Texture&) {} ++ void destroyAllTextures() {} ++ void beginRendering() {} ++ void endRendering() {} ++ void setDisplaySize(const CEGUI::Size&) {} ++ const CEGUI::Size& getDisplaySize() const { return m_size; } ++ const CEGUI::Vector2& getDisplayDPI() const {return m_dpi; } ++ CEGUI::uint getMaxTextureSize() const { return 0; } ++ const CEGUI::String& getIdentifierString() const { return m_identifierString; } ++ ++private: ++ CEGUI::Size m_size; ++ CEGUI::Vector2 m_dpi; ++ CEGUI::String m_identifierString; ++ cFake_GeometryBuffer m_geometry; ++ cFake_Texture m_texture; ++ cFake_RenderTarget m_target; ++ CEGUI::RenderingRoot m_root; + }; + + /* *** *** *** *** *** *** *** Video class *** *** *** *** *** *** *** *** *** *** */ diff --git a/srcpkgs/SMC/template b/srcpkgs/SMC/template new file mode 100644 index 00000000000..b45bf606bf3 --- /dev/null +++ b/srcpkgs/SMC/template @@ -0,0 +1,44 @@ +# Template file for 'SMC' +pkgname=SMC +version=1.9 +revision=1 +wrksrc=${pkgname,,}-${version} +build_style=gnu-configure +hostmakedepends="automake libtool gettext-devel pkg-config unzip" +makedepends="MesaLib-devel boost-devel cegui07-devel gettext-devel + SDL_image-devel SDL_mixer-devel SDL_ttf-devel" +depends="SMC-data>=${version}" +short_desc="Two-dimensional platform game similar to Super Mario" +maintainer="Jürgen Buchmüller " +license="GPL-3" +homepage="http://www.secretmaryo.org/" +distfiles=" + ${SOURCEFORGE_SITE}/smclone/${wrksrc}.tar.bz2 + ${SOURCEFORGE_SITE}/smclone/SMC_Music_5.0_high.zip" +checksum=" + b4194e70d3f1de3da884dd1a11e4f5cec25a205f66a3b85cc9fc1c86289b237d + c5bb2e1830c7cbe499c93851f5a02b2b900b4730d2c7a133a44a7b43a297dab8" + +CXXFLAGS="-fpermissive -std=c++11" +LDFLAGS="-lX11 -lboost_system" + +post_extract() { + # remove CRs from end of line + find ${wrksrc}/src -type f -exec sed -i "{}" -e "s;\r$;;" \; + mv ${XBPS_BUILDDIR}/data/music/* ${wrksrc}/data/music +} +pre_configure() { + NOCONFIGURE=1 ./autogen.sh +} +post_install() { + vinstall ${FILESDIR}/smc.desktop 644 usr/share/applications + vinstall ${FILESDIR}/smc.png 644 usr/share/pixmaps +} + +SMC-data_package() { + short_desc+=" - data files" + noarch=yes + pkg_install() { + vmove usr/share/smc + } +}