Giter Site home page Giter Site logo

servb / pph Goto Github PK

View Code? Open in Web Editor NEW
22.0 5.0 4.0 15.99 MB

Pocket Palm Heroes – a turn-based strategy made in the style and feel of the old-school "Heroes of Might and Magic" game. Native full version: https://github.com/SerVB/pph-native

Home Page: https://servb.github.io/pph/

License: Apache License 2.0

Kotlin 100.00%
kotlin korge pocket-palm-heroes game

pph's Introduction

Pocket Palm Heroes Discord Build Deploy to GitHub Pages

This project tries to bring good old Palm Heroes/Pocket Heroes back to life. The work was started in 2017.

Screenshots image

Pocket Palm Heroes is an original turn-based strategy for different devices, that is made in the style and feel of the old-school "Heroes of Might and Magic" game. Pocket Palm Heroes plunges you into the atmosphere of exciting fantasy adventures and epic battles! Lead your heroes as a barbarian orc chief, a noble knight, a mighty wizard, a fast beautiful sorceress, a warlock, or a creepy undead necromancer! As your kingdom grows in size, and your heroes get more powerful, you will discover new places, learn new skills and magic, and fight different monsters!

Play online!

It's available at GitHub Pages: https://servb.github.io/pph/.

Running from sources

To run the game, clone the repo and execute the following commands:

# Pack resources (needed only once or after changes in resources):
./gradlew :packResources      # for Linux/Mac
.\gradlew.bat :packResources  # for Windows
# Run app:
./gradlew :runJvm      # for Linux/Mac
.\gradlew.bat :runJvm  # for Windows

Java needs to be installed on the computer.

What we have

Sources of different versions

Unsurprisingly, this project is based on the following source codes:

  1. https://github.com/sigman78/pocketheroes/ (available under Apache 2.0 license) — 1.04 beta. Can be compiled even in Visual Studio 2019 (Community) but with some effort (feel free to ask for help at Discord if you want to compile them).
  2. https://sourceforge.net/projects/palmheroes/ (available under Apache 2.0 license) — seems to be 1.03. Can't be compiled because of lack of some files. Also, there is many code that is related to licence registration (take a look at commits).

The sources are old (not the latest 1.05). Let's primarily use the 1.04 beta version.

Change logs

Change logs are needed to fix the old sources and upgrade the version to the final known one — 1.05.

File prefixes

Many source files has prefixes.

Prefix Possible description
gxl Main framework
xxl Extensions for the main framework
xau Audio compression
xjp Image compression
he "Helium" library

Game menus

Menu classes Description Menu items
MenuView/iMainMenuDlg Main menu screen TRID_MENU_NEWGAME, TRID_MENU_LOADGAME, TRID_MENU_HIGHSCORE, TRID_MENU_CREDITS, TRID_MENU_EXITGAME
GameMenuDlg/iGameMenuDlg Small menu dialog in the corner of the screen during the game Settings, Save game, Main menu, Quit, Return to game

What we do

Port the existing sources to Kotlin. Use KorGE (available under Apache 2.0 license) to draw picture, process user input, and provide binaries for different platforms.

Progress

The progress can be seen under the Issues tab.

There are some screencasts of what's working:

Practices

There are some practices of rewriting C++ code to JVM-related code.

Constant references

Many objects are passed to functions as constants. To archive this in Kotlin, it's needed to write an interface with constant (read-only) methods and another interface or class with other methods that extends/implements the constant interface. The interface should have the "I" prefix (from "Immutable"). You can find many examples in the ported sources.

Maybe Kotlin will have such a concept in the future: KT-44173.

Pointers

Some arguments are passed as pointers and are modified inside the function. For these purposes, just pass mutable object. If the type is immutable, for example, String or Int, we have a special wrapper called Mutable<T>. Find examples in the ported sources.

Remove super classes

  • iIListNode.
  • TypeAware.

Use standard Kotlin classes

Kotlin class Initial type
String _T("String content"), L"String content", LPCTSTR, iStringTemplate<E>, iStringW, iStringA, iStringT
Byte sint8
UByte uint8
Short sint16
UShort uint16
Int sint32
UInt uint32
Long sint64
ULong uint64

Code folding

IDEs such as IDEA or NetBeans can fold code. It's useful to hide huge pieces of code by default:

//<editor-fold defaultstate="collapsed" desc="hashCode & equals">
custom hashCode and equals methods here
//</editor-fold>

Other links

License

This work is available under Apache 2.0 license.

pph's People

Contributors

servb avatar soywiz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

ydot13 misha1sh

pph's Issues

iOS support

KorGE provides a possibility to build for iOS. However, I don't have such a device so it would be great if someone contribute iOS support.

Rewrite /pheroes/Common/

The following files:

Rewrite /iolib/Pa/libxml/

The following files:

  • c14n.h
  • catalog.h
  • debugXML.h
  • DOCBparser.h
  • encoding.h
  • entities.h
  • globals.h
  • hash.h
  • HTMLparser.h
  • HTMLtree.h
  • list.h
  • nanoftp.h
  • nanohttp.h
  • parser.h
  • parserInternals.h
  • SAX.h
  • threads.h
  • tree.h
  • uri.h
  • valid.h
  • xinclude.h
  • xlink.h
  • xmlautomata.h
  • xmlerror.h
  • xmlIO.h
  • xmlmemory.h
  • xmlreader.h
  • xmlregexp.h
  • xmlschemas.h
  • xmlschemastypes.h
  • xmlunicode.h
  • xmlversion.h
  • xmlwin32version.h
  • xpath.h
  • xpathInternals.h
  • xpointer.h
  • c14n.c
  • catalog.c
  • debugXML.c
  • DOCBparser.c
  • encoding.c
  • entities.c
  • error.c
  • globals.c
  • hash.c
  • HTMLparser.c
  • HTMLtree.c
  • libxml.h
  • list.c
  • nanoftp.c
  • nanohttp.c
  • parser.c
  • parserInternals.c
  • SAX.c
  • threads.c
  • tree.c
  • trio.c
  • triodef.h
  • trionan.c
  • trionan.h
  • triostr.c
  • uri.c
  • valid.c
  • win32config.h
  • wsockcompat.h
  • xinclude.c
  • xlink.c
  • xmlcatalog.c
  • xmlIO.c
  • xmlmemory.c
  • xmlreader.c
  • xmlregexp.c
  • xmlschemas.c
  • xmlschemastypes.c
  • xmlunicode.c
  • xpath.c
  • xpointer.c

Rewrite /iolib/Xe/PNG/zlib/

The following files:

  • adler32.c
  • compress.c
  • crc32.c
  • deflate.c
  • deflate.h
  • infblock.c
  • infblock.h
  • infcodes.c
  • infcodes.h
  • inffast.c
  • inffast.h
  • inffixed.h
  • inflate.c
  • inftrees.c
  • inftrees.h
  • infutil.c
  • infutil.h
  • maketree.c
  • trees.c
  • trees.h
  • uncompr.c
  • zconf.h
  • zlib.h
  • zutil.c
  • zutil.h

Rewrite /pheroes/MapEditor/

The following files:

  • aboutdlg.h
  • Artifacts.cpp
  • Artifacts.h
  • AvatarMgr.cpp
  • AvatarMgr.h
  • ChildDlgs.cpp
  • ChildDlgs.h
  • Commands.cpp
  • Commands.h
  • Composer.cpp
  • Composer.h
  • Constructions.cpp
  • Constructions.h
  • defines.cpp
  • defines.h
  • ExportDlg.cpp
  • ExportDlg.h
  • ifaces.h
  • Items.h
  • mainfrm.h
  • MainView.cpp
  • MainView.h
  • MapEditor.cpp
  • MapEditor.h
  • MapGen.cpp
  • MapGen.h
  • MapHandler.cpp
  • MapHandler.h
  • MapValidateDlg.cpp
  • MapValidateDlg.h
  • MinimapView.cpp
  • MinimapView.h
  • NewMapDlg.h
  • Nodes.h
  • objects.cpp
  • objects.h
  • PropertyPages.cpp
  • PropertyPages.h
  • resmgr.cpp
  • resmgr.h
  • resource.h
  • SoundMgr.cpp
  • SoundMgr.h
  • SpriteMgr.cpp
  • SpriteMgr.h
  • stdafx.cpp
  • stdafx.h
  • TextMgr.cpp
  • TextMgr.h
  • TextResDlg.cpp
  • TextResDlg.h
  • UltimatePropsDlg.h

Rewrite /iolib/Xe/

The following files:

  • xe.color.cpp
  • xe.color.h
  • xe.cursor.h
  • xe.dc.h
  • xe.dc.hlp.h
  • xe.dib.8bit.cpp
  • xe.dib.8bit.h
  • xe.dib.cache.cpp
  • xe.dib.cache.h
  • xe.dib.cpp
  • xe.dib.dchandl.cpp
  • xe.dib.filters.cpp
  • xe.dib.fx.cpp
  • xe.dib.grayhandl.cpp
  • xe.dib.h
  • xe.dib.llproc.cpp
  • xe.dib.llproc.h
  • xe.dib.loader.cpp
  • xe.dib.mem.cpp
  • xe.dib.primitives.cpp
  • xe.dib.saver.cpp
  • xe.dib.text.cpp
  • xe.dib.transform.cpp
  • xe.dib.transform.fscale.cpp
  • xe.font.h
  • xe.gray.dib.h
  • xe.memorydc.h
  • xe.std.h

Add CheckerFramework

For now CheckerFramework is used only for using annotations (@Nullable and @Unsigned), but any checks aren't performed. Someday it's vital to set up CheckerFramework properly and fix all the warnings.

Rewrite /iolib/He/

The following files:

  • he.alg.search.h
  • he.buff.h
  • he.console.h
  • he.container.cache.h
  • he.container.fast.array.h
  • he.container.fast.ilist.h
  • he.container.hash.h
  • he.container.map.h
  • he.container.simple.array.h
  • he.container.simple.map.h
  • he.container.tree.h
  • he.cpuf.cpp
  • he.cpuf.h
  • he.crc32.cpp
  • he.crc32.h
  • he.debug.log.cpp
  • he.debug.log.h
  • he.defines.h
  • he.file.cpp
  • he.file.h
  • he.file.name.cpp
  • he.file.name.h
  • he.file.std.h
  • he.fixpoint.h
  • he.handle.h
  • he.inifile.h
  • he.ipc.anpipes.h
  • he.ipc.nmpipes.h
  • he.localization.cpp
  • he.localization.h
  • he.memory.compress.cpp
  • he.memory.compress.h
  • he.memory.cpp
  • he.memory.dynbuff.h
  • he.memory.h
  • he.metrics.cpp
  • he.metrics.h
  • he.net.address.h
  • he.net.blocksock.h
  • he.pair.h
  • he.range.h
  • he.smartptr.h
  • he.std.cpp
  • he.std.h
  • he.string.cpp
  • he.string.h
  • he.string.std.h
  • he.tables.cpp
  • he.tables.h
  • he.threads.cpp
  • he.threads.h
  • he.types.h
  • he.vector.h
  • he.wnd.helpers.h

Rewrite /iolib/Si/

The following files:

  • si.common.h
  • si.nwcontrol.base.cpp
  • si.nwcontrol.base.h
  • si.nwcontrol.base.ttip.cpp
  • si.nwcontrol.base.ttip.h
  • si.nwcontrol.button.cpp
  • si.nwcontrol.button.h
  • si.nwcontrol.flatsbar.h
  • si.nwcontrol.label.cpp
  • si.nwcontrol.label.h
  • si.nwcontrol.popupbtn.cpp
  • si.nwcontrol.popupbtn.h
  • si.nwcontrol.sbutton.cpp
  • si.nwcontrol.sbutton.h
  • si.nwcontrol.slider.cpp
  • si.nwcontrol.slider.h
  • si.nwcontrol.swbutton.cpp
  • si.nwcontrol.swbutton.h
  • si.nwcontrol.tab.cpp
  • si.nwcontrol.tab.h
  • si.nwinterfaces.h
  • si.osspec.cpp
  • si.osspec.h
  • si.std.h
  • si.tooltip.disp.h
  • si.wctrl.tree.cpp
  • si.wctrl.tree.h
  • si.window.basenw.cpp
  • si.window.basenw.h
  • si.window.frame.cpp
  • si.window.frame.h
  • si.window.generic.cpp
  • si.window.generic.h
  • si.window.popup.cpp
  • si.window.popup.h
  • si.window.popupmenu.cpp
  • si.window.popupmenu.h
  • si.window.topmost.cpp
  • si.window.topmost.h
  • si.winmgr.h

Rewrite /iolib/Xe/PNG/lpng125/

The following files:

  • png.c
  • png.h
  • pngasmrd.h
  • pngconf.h
  • pngerror.c
  • pnggccrd.c
  • pngget.c
  • pngmem.c
  • pngpread.c
  • pngread.c
  • pngrio.c
  • pngrtran.c
  • pngrutil.c
  • pngset.c
  • pngtrans.c
  • pngvcrd.c
  • pngwio.c
  • pngwrite.c
  • pngwtran.c
  • pngwutil.c

Rewrite /iolib/Li/

The following files:

  • li.cmndlg.cpp
  • li.cmndlg.h
  • li.common.h
  • li.ctrl.alevel.h
  • li.ctrl.editbtn.h
  • li.ctrl.outlookbar.h
  • li.ctrl.statimg.h
  • li.dialog.base.h
  • li.dialog.progress.cpp
  • li.dialog.progress.h
  • li.helpers.h
  • li.std.h
  • li.tbpane.h
  • li.tray.h
  • li.wtl.hlp.h

Rewrite /iolib/Pa/

The following files:

  • pa.autovalue.h
  • pa.convert.h
  • pa.convert.utf8.cpp
  • pa.convert.utf8.h
  • pa.except.h
  • pa.map.h
  • pa.sax.format.h
  • pa.sax.h
  • pa.sax.handler.h
  • pa.sax.parser.cpp
  • pa.sax.parser.h
  • pa.sax.pathhandler.h
  • pa.serialize.h
  • pa.variant.h
  • pa.xml.builder.cpp
  • pa.xml.builder.h

Rewrite /gxlib/

The following files:

  • gxl.application.cpp (0c96348)
  • gxl.application.h (0c96348)
  • gxl.audio.cpp (deleted -- use https://github.com/libgdx/libgdx/wiki/Audio)
  • gxl.audio.h (deleted -- use https://github.com/libgdx/libgdx/wiki/Audio)
  • gxl.cmdline.cpp (deleted -- not used)
  • gxl.cmdline.h (deleted -- not used)
  • gxl.common.def.cpp (done earlier)
  • gxl.common.def.h (done earlier)
  • gxl.common.tpl.h (done earlier)
  • gxl.config.file.cpp (deleted -- not used)
  • gxl.config.file.h (deleted -- not used)
  • gxl.ctr.array.h
  • gxl.ctr.cbuff.h
  • gxl.ctr.farray.h
  • gxl.ctr.list.h
  • gxl.ctr.map.h
  • gxl.debug.h
  • gxl.dialog.cpp (586b7f1)
  • gxl.dialog.h (586b7f1)
  • gxl.dib.cache.h
  • gxl.dib.cpp
  • gxl.dib.fx.cpp
  • gxl.dib.h
  • gxl.dib.loader.cpp
  • gxl.dib.loader.w32.cpp
  • gxl.dib.loader.wce.cpp
  • gxl.dib.transform.cpp
  • gxl.dibfont.cpp
  • gxl.dibfont.h
  • gxl.display.cpp
  • gxl.display.gdi.cpp
  • gxl.display.h
  • gxl.display.w32.cpp
  • gxl.display.wce.cpp
  • gxl.file.cpp
  • gxl.file.h
  • gxl.fixpoint.h (done earlier)
  • gxl.font.h (deleted -- empty class)
  • gxl.gxdyn.cpp (deleted -- WinAPI or something)
  • gxl.gxdyn.h (deleted -- WinAPI or something)
  • gxl.inc.h (58b62ce)
  • gxl.input.cpp
  • gxl.input.h
  • gxl.logmgr.cpp (deleted -- little use for debug battles, only in DEBUG configuration)
  • gxl.logmgr.h (deleted -- little use for debug battles, only in DEBUG configuration)
  • gxl.math.cpp (done earlier)
  • gxl.math.h (done earlier)
  • gxl.memdbg.cpp (deleted -- debug memory)
  • gxl.memdbg.h (deleted -- debug memory)
  • gxl.memdc.h
  • gxl.memory.h (e38d29c)
  • gxl.metrics.cpp (d952737 and older)
  • gxl.metrics.h (d952737 and older)
  • gxl.pair.h (deleted -- Kotlin has pairs)
  • gxl.popupview.cpp (5d0f563)
  • gxl.popupview.h (5d0f563)
  • gxl.power.h (deleted -- not used)
  • gxl.rnd.h (b09b8d6)
  • gxl.smartptr.h (deleted -- no need for Kotlin)
  • gxl.stdctrl.cpp (4d80ea1)
  • gxl.stdctrl.h (4d80ea1)
  • gxl.string.h (df83a28)
  • gxl.string.std.h (deleted -- Kotlin has the same methods)
  • gxl.timer.h (92b29bd)
  • gxl.topmostview.cpp (a31fcd8)
  • gxl.topmostview.h (a31fcd8)
  • gxl.vector.h (deleted -- not used)
  • gxl.view.cpp (3f11214)
  • gxl.view.h (3f11214)
  • gxl.viewmgr.cpp (3083ee3)
  • gxl.viewmgr.h (3083ee3)
  • gxl.winapp.cpp (deleted -- not used)
  • gxl.winapp.h (deleted -- not used)
  • gxl.window.cpp (d12275c)
  • gxl.window.h (d12275c)

Deleted memory files:

  • xxl.arena.cpp
  • xxl.arena.h
  • xxl.array.cfg.h
  • xxl.array.h
  • xxl.array.mem.h
  • xxl.array.meta.h
  • xxl.array.move.h
  • xxl.array.popt.h
  • xxl.array.stg.h
  • xxl.array.user.h
  • xxl.guard.h
  • xxl.ref.countable.h
  • xxl.ref.ptr.h

Rewrite /pheroes/Common/xau/

The following files:

  • cpcm_tst.cpp
  • cpnm_tst.cpp
  • xau.audio.cpp
  • xau.audio.h
  • xau.cfg.h
  • xau.ppf.h
  • xau.ppf.impl.h
  • xau.rice.h
  • xau.rice.impl.h
  • xbs.bs.h
  • xbs.bs.impl.h
  • xbs.bswap.h
  • xbs.cfg.h
  • xbs.math.h
  • xjp.block.cpp
  • xjp.block.h
  • xjp.boot.h
  • xjp.codec.cpp
  • xjp.codec.h
  • xjp.dct.cpp
  • xjp.dct.h
  • xjp.huff.cpp
  • xjp.huff.h
  • xjp.huff.impl.h
  • xjp.quant.cpp
  • xjp.quant.h
  • xjp.swizzle.h

Differences [email protected]:sigman78/pocketheroes.git -> https://sourceforge.net/p/palmheroes/code/7/

These differences can be valuable to implement in PPH:

  • makefile.gcc (new)
  • bin/Data dir (new)
  • Common/Army.cpp, Common/Army.h (changes in AddGroup, removal of CreatureCount)
  • Common/cm_castles.cpp, Common/cm_castles.h (creature-related changes)
  • Common/cm_creatures.cpp, Common/cm_creatures.h (creature-related changes)
  • Common/cm_events.cpp (changes in IsConform)
  • Common/cm_magic.cpp (changes in comments but not in values...)
  • Common/cnst_gfx.h (changes in map border)
  • Common/cnst_sfx.h (addition of sounds)
  • Common/cnst_text.h (making translation dynamic, change in constants)
  • Common/common.cpp (remove PLAYER_WORD_COLORS)
  • Common/connmgr.h (new, addition of online play)
  • Common/lang_cze.cpp, lang_eng.cpp, lang_fr.cpp, lang_ger.cpp, lang_pl.cpp, lang_rus.cpp, lang_slov.cpp (changes in translations)
  • Game/ai.cpp, ai.h (registration + changing in creatures)
  • Game/ArtifactList.cpp, ArtifactList.h (changes in rendering)
  • Game/BattleAI.cpp (changes in logic)
  • Game/BattleEngine.cpp, BattleEngine.h (changes in logic)
  • Game/BattleInfo.cpp (changes in logic)
  • Game/BattleUnit.cpp, BattleUnit.h (changes in logic)
  • Game/BattleView.cpp (changes in logic)
  • Game/CastleCnsts.cpp (changes in logic, changes in creatures, changes in heroes limit)
  • Game/CommonControls.cpp (not needed: registration)
  • Game/CommonDialogs.cpp (changes in logic)
  • Game/Composer.cpp (changes in map border)
  • Game/Constructions.cpp (registration + changes in logic)
  • Game/Dlg_ChooseBattleGroup.cpp, Dlg_ChooseBattleGroup.h (removed)
  • Game/Dlg_Register.cpp, Dlg_Register.h (not needed: new)
  • Game/Dlg_Rewards.cpp, Dlg_Rewards.h (changes in logic)
  • Game/Dlg_Save.cpp (not needed: support HMM_COMPOVERSION)
  • Game/Dlg_ScenList.cpp (not needed: support HMM_COMPOVERSION)
  • Game/Dlg_ScenProps.cpp (changes in logic)
  • Game/Game.cpp (not needed: registration)
  • Game/GameMenuDlg.cpp (not needed: registration)
  • Game/GameWorld.cpp (registration + changes in logic)
  • Game/GfxHlp.cpp, GfxHlp.h (remove ComposeCreatureButtonWithText)
  • Game/helpers.cpp (not needed: support HMM_COMPOVERSION)
  • Game/hero.cpp, hero.h (registration + changes in creatures, changes in logic)
  • Game/Hero_Skills.h (refactor rename)
  • Game/hmm.cpp (not needed: registration)
  • Game/hmm.h (not needed: rename PH to Dune)
  • Game/iBattleGroupBtn.cpp, iBattleGroupBtn.h (removed)
  • Game/icon1.ico (new; mapeditor icon??)
  • Game/ItemMgr.cpp (not needed: registration)
  • Game/Map.cpp, Map.h (changes in encoding, seems to be needed to support already existing maps)
  • Game/MenuView.cpp (not needed: registration + implemented in e572671: add main menu button borders)
  • Game/objects.cpp (registration + changes in logic)
  • Game/OverlandView.cpp (registration + changes in logic)
  • Game/player.cpp, player.h (registration + changes in logic)
  • Game/resource1.h (seems like not needed generated file)
  • Game/Settings.cpp (support fog of war)
  • Game/sprite.h (not needed: rename PH to Dune)
  • Game/sprite2.h (not needed: remove optimizations)
  • Game/stdafx.h (not needed: registration)
  • Game/TextComposer.cpp (registration + changes in logic)

Rewrite /pheroes/Game/

The following files:

  • ai.cpp
  • ai.dmap.cpp
  • ai.explore.cpp
  • ai.explore.h
  • ai.h
  • ai.scanner.cpp
  • ai.scanner.h
  • AniObject.cpp
  • AniObject.h
  • ArmyList.cpp
  • ArmyList.h
  • ArtifactList.cpp
  • ArtifactList.h
  • Artifacts.cpp
  • Artifacts.h
  • AutoBattle.cpp
  • AutoBattle.h
  • AvatarMgr.cpp
  • AvatarMgr.h
  • BattleAI.cpp
  • BattleAI.h
  • BattleEngine.cpp
  • BattleEngine.h
  • BattleFort.cpp
  • BattleFort.h
  • BattleInfo.cpp
  • BattleInfo.h
  • BattleObstacles.cpp
  • BattleObstacles.h
  • BattlePF.cpp
  • BattlePF.h
  • BattleUnit.cpp
  • BattleUnit.h
  • BattleView.cpp
  • BattleView.h
  • CastleCnsts.cpp
  • CastleCnsts.h
  • Castles.cpp
  • Castles.h
  • CastleView.cpp
  • CastleView.h
  • CommonControls.cpp
  • CommonControls.h
  • CommonDialogs.cpp
  • CommonDialogs.h
  • Composer.cpp
  • Composer.h
  • Constructions.cpp
  • Constructions.h
  • Credits.cpp
  • Credits.h
  • Ctl_CnstPage.h
  • Ctl_MarketPage.h
  • Ctl_MGuildPage.h
  • Ctl_RecrPage.h
  • Ctl_TavernPage.h
  • dbg.cpp
  • dbg.h
  • Dlg_ArmyRoom.cpp
  • Dlg_ArmyRoom.h
  • Dlg_ArtInfo.cpp
  • Dlg_ArtInfo.h
  • Dlg_BattleHero.cpp
  • Dlg_BattleHero.h
  • Dlg_BattleLog.cpp
  • Dlg_BattleLog.h
  • Dlg_BattleResult.cpp
  • Dlg_BattleResult.h
  • Dlg_CapArt.cpp
  • Dlg_CapArt.h
  • Dlg_CastSpell.cpp
  • Dlg_CastSpell.h
  • Dlg_Chest.cpp
  • Dlg_Chest.h
  • Dlg_ChooseBattleGroup.cpp
  • Dlg_ChooseBattleGroup.h
  • Dlg_CreatInfo.cpp
  • Dlg_CreatInfo.h
  • Dlg_FightGuard.cpp
  • Dlg_FightGuard.h
  • Dlg_HallOfFame.cpp
  • Dlg_HallOfFame.h
  • Dlg_KingdomOverview.cpp
  • Dlg_KingdomOverview.h
  • Dlg_LeaveGuards.cpp
  • Dlg_LeaveGuards.h
  • Dlg_Level.cpp
  • Dlg_Level.h
  • Dlg_Message.cpp
  • Dlg_Message.h
  • Dlg_MLInfo.cpp
  • Dlg_MLInfo.h
  • Dlg_NewWeek.cpp
  • Dlg_NewWeek.h
  • Dlg_Other.cpp
  • Dlg_Other.h
  • Dlg_PuzzleMap.cpp
  • Dlg_PuzzleMap.h
  • Dlg_Recruit.cpp
  • Dlg_Recruit.h
  • Dlg_Rewards.cpp
  • Dlg_Rewards.h
  • Dlg_RiseSkeletons.cpp
  • Dlg_RiseSkeletons.h
  • Dlg_Save.cpp
  • Dlg_Save.h
  • Dlg_ScenList.cpp
  • Dlg_ScenList.h
  • Dlg_ScenProps.cpp
  • Dlg_ScenProps.h
  • Dlg_Settings.cpp
  • Dlg_Settings.h
  • Dlg_SkillInfo.cpp
  • Dlg_SkillInfo.h
  • Dlg_SpellInfo.cpp
  • Dlg_SpellInfo.h
  • Dlg_SplitCreatures.cpp
  • Dlg_SplitCreatures.h
  • Dlg_SurrenderCond.cpp
  • Dlg_SurrenderCond.h
  • Dlg_TimeEvent.cpp
  • Dlg_TimeEvent.h
  • Dlg_TownList.cpp
  • Dlg_TownList.h
  • Dlg_WitchHut.cpp
  • Dlg_WitchHut.h
  • fogmap.cpp
  • fogmap.h
  • Game.cpp
  • Game.h
  • GameMenuDlg.cpp
  • GameMenuDlg.h
  • GameWorld.cpp
  • GameWorld.h
  • gammatab.h
  • GfxHlp.cpp
  • GfxHlp.h
  • GfxManager.cpp
  • GfxManager.h
  • helpers.cpp
  • helpers.h
  • hero.cpp
  • hero.h
  • HeroView.cpp
  • HeroView.h
  • Hero_Army.h
  • Hero_Artifacts.h
  • Hero_Skills.h
  • Hero_Spells.h
  • hmm.cpp
  • hmm.h
  • iBattleGroupBtn.cpp
  • iBattleGroupBtn.h
  • InteractBattle.cpp
  • InteractBattle.h
  • IntroDlg.cpp
  • IntroDlg.h
  • ItemMgr.cpp
  • ItemMgr.h
  • Magic.cpp
  • Magic.h
  • Map.cpp
  • Map.h
  • MeetView.cpp
  • MeetView.h
  • MenuView.cpp
  • MenuView.h
  • MinimapView.cpp
  • MinimapView.h
  • objects.cpp
  • objects.h
  • OverlandView.cpp
  • OverlandView.h
  • PathFinding.cpp
  • PathFinding.h
  • perf.h
  • player.cpp
  • player.h
  • PopupDlg.cpp
  • PopupDlg.h
  • resource.h
  • Settings.cpp
  • Settings.h
  • SfxManager.cpp
  • SfxManager.h
  • SoundMap.cpp
  • SoundMap.h
  • SpellListView.cpp
  • SpellListView.h
  • sprite.cpp
  • sprite.h
  • sprite2.h
  • SpriteDef.cpp
  • SpriteDef.h
  • stdafx.cpp
  • stdafx.h
  • TextComposer.cpp
  • TextComposer.h
  • TextManager.cpp
  • TextManager.h
  • ViewDefs.h

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.