Giter Site home page Giter Site logo

ohrrpgce / ohrrpgce Goto Github PK

View Code? Open in Web Editor NEW
72.0 9.0 16.0 133.1 MB

Official Hamster Republic RPG Construction Engine (mirror of SVN repository)

Home Page: https://rpg.HamsterRepublic.com/ohrrpgce/Source

License: Other

Python 8.44% C 12.38% Shell 1.45% Awk 0.04% C++ 8.51% Batchfile 0.16% Objective-C 0.25% Makefile 0.01% Emacs Lisp 0.08% Inno Setup 0.09% JavaScript 0.10% HTML 0.49% Squirrel 0.15% Dockerfile 0.25% HCL 0.01% FreeBasic 65.77% Euphoria 1.82%
game-engine gamedev freebasic rpg-engine rpg rpg-tool game-engine-2d cross-platform ohrrpgce

ohrrpgce's Introduction

-----------------------------------------------------------------------------
   Official Hamster Republic RPG Construction Engine    (O.H.R.RPG.C.E)
                                    http://HamsterRepublic.com/ohrrpgce/
-----------------------------------------------------------------------------

Welcome to the OHRRPGCE Source Code! This file gives some basic instructions
for compiling the OHRRPGCE, some hints for hacking improvements, and some
history of the code.
-----------------------------------------------------------------------------
We strongly recommend reading http://rpg.HamsterRepublic.com/ohrrpgce/Source
for more detailed up-to-date compiling instructions and documentation of the
source code, especially http://rpg.HamsterRepublic.com/ohrrpgce/Compiling

Please see whatsnew.txt for the changelog.
-----------------------------------------------------------------------------
LICENSE:
  This program is free software; you can redistribute it and/or modify it.
  Dual licensed under the GNU GPL v2+ and MIT Licenses.
  Read LICENSE.txt for terms and disclaimer of liability.

  Any .RPG files you create are yours to distribute as you please; 
  You hold your own copyright to games you make with this engine.
-----------------------------------------------------------------------------
WINDOWS/LINUX/UNIX:
  Recommend FreeBASIC version 1.08.0
  Requires minimum FreeBASIC version 1.04.0
  Download FreeBASIC from http://freebasic.net/
   http://rpg.hamsterrepublic.com/ohrrpgce/Getting_FreeBasic
  Compiling requires Python and Scons
  Building HSpeak requires Euphoria v4.0+: http://www.OpenEuphoria.com/
  (Compiling x86_64 versions of HSpeak requires Euphoria 4.1+)
  Compiling gfx_directx.dll (optional) requires Visual C++ and a DirectX SDK.
  (See http://rpg.hamsterrepublic.com/ohrrpgce/Compiling#gfx_directx)
  x86, x86_64, and ARM on Win32, GNU/Linux, OSX and Android are tested.
-----------------------------------------------------------------------------
MAC OS X:
  Compiling requires Python, Scons, and FreeBASIC 1.09+, or else a fork of FB
  Read http://rpg.hamsterrepublic.com/ohrrpgce/Compiling_in_Mac_OS_X
-----------------------------------------------------------------------------
ANDROID:
  Requires a fork of FreeBASIC 1.06+
  Requires sdl-android (ohrrpgce fork)
  See http://rpg.hamsterrepublic.com/ohrrpgce/Compiling_for_Android for info
  or try ./docker/ohrrpgce-build-env-android/andr-oldstyle.sh
-----------------------------------------------------------------------------
WEB:
  Compiling requires  Scons, Emscripten, and a fork of FreeBasic with
  emscripten support.
  Try ./docker/ohrrpgce-build-env-emscripten/emscr.sh
  Testing web builds doesn't work on file:// urls, use a local webserver.
  `python3 -m http.server` in the source dir, http://localhost:8000/
-----------------------------------------------------------------------------
INSTRUCTIONS
  Unpack the source code to a new folder
  Install FreeBASIC
  Install Python 3 if needed
  Install SConscript
  Run "scons --help" to see the many options and targets available
  Run "scons" to compile a debug build of Game and Custom
  Run "scons release=1" for release builds
  (Unix only) You can run "scons install" to install system-wide or as part
  of creating a package. You can run linux/ohrrpgce.py to create a .deb file.
-----------------------------------------------------------------------------
MAKING IMPROVEMENTS
  There are still lots of bugs that need to be fixed. For a list of known
  bugs, visit http://HamsterRepublic.com/ohrrpgce/buglist.php
  We also welcome code-cleanup and new features as long as you don't break
  compatibility with existing games. If you want to submit a improvement
  see http://rpg.hamsterrepublic.com/ohrrpgce/Source#Submitting_Improvements
-----------------------------------------------------------------------------
WHAT IF YOU WANT TO BREAK COMPATIBILITY?
  We don't reccomend breaking compatibility from the official version,
  but you are welcome to make your own "fork" of the OHRRPGCE code as long
  as you obey the conditions of the Dual GPL & MIT License. For practical
  purposes that means you can pick one licence or the other as best suits
  your needs for your own fork, but if you wish to contribute your changes
  back to us for inclusion in the official version, you should comply with
  both licenses.
-----------------------------------------------------------------------------
HISTORY
  The OHRRPGCE's source code has a long history! The first version was
  written back in 1996 using QuickBasic 4.5 and some ASM libraries on
  a 486 DOS computer.

  The code was very messy, but gradually, patiently, over many years
  it has been incrementally cleaned up. Some of it is in very good shape
  while other parts of the code still show the legacy of technical debt.
  On the whole, we the developers are quite proud of how this codebase has
  grown from something promitive into something-- well, not modern, but
  certainly lovingly crafted!

  After releasing the source code under the GPL, it turns out that several
  people did in fact have time and motivation to improve the code. These new
  developers were a blessing, and have revitalized OHRRPGCE development.
  Although some questionable code still exists, it is always getting better.
  The OHRRPGCE has become a joyous exercise in incrementally transforming a
  BIG BALL OF MUD into well-structured code, while maintaining backwards
  compatibility all along the way.
  
  In 2021 we relicenced to GPLv2+ & MIT dual license by unanimous consent
  of all contributors.

  The code base is big and varied, but we hope that doesn't discourage you.
  Play around with the code, have fun, communicate with the other developers
  whenever you have questions, and if you make any improvements that you
  would like us to merge back into the official version, submit patches/pull
  requests; see
  http://rpg.hamsterrepublic.com/ohrrpgce/Source#Submitting_Improvements
-----------------------------------------------------------------------------
James Paige - [email protected] - http://HamsterRepublic.com/ohrrpgce/
-----------------------------------------------------------------------------
Do you want to keep up with the latest development progress? Subscribe to
the Developer's Mailing list:
http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
-----------------------------------------------------------------------------

ohrrpgce's People

Contributors

bob-the-hamster avatar pkmnfrk avatar rversteegen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar

ohrrpgce's Issues

Massive indentation cleanup

[bz#42]

NeoTA has provided me with a python script, "basclean.py" to clean up the
indentation in the OHR's source code. This should make the code much more readable.

From: @bob-the-hamster
Reported version: unknown

Declares really messy

[bz#44]

The declares in the various source files are messy and out of sync with each
other. They need to be moved into common files where they can be more easily
looked after.

From: @pkmnfrk
Reported version: 20040628 Ozarks
Duplicates: bz⁠#48

dismounting a vehicle at the edges of a map causes the hero to "moonwalk" backwards around the entire map

[bz#11]

If you dismount a vehicle across the edge of a wraparound map, and if the "pass
walls while dismounting" bitset is on, your hero will walk backwards (moonwalk)
all the way around the map.

I know why this is happening, it is just kindof a pain to fix. Both wraparound
maps and vehicles are poorly planned hacks that I did not account for when
writing the map code.

From: @bob-the-hamster
Reported version: 20040628 Ozarks

huge memory wastage

[bz#45]

most of the arrays are single-precision because this is the default! And in this
way it uses twice as much memory as needed!
just by switching the largest arrays to integer, you could massively improve
memory usage! (and speed, too; some arrays currently occupy almost 64k where
they could use 32k!)

I have changed most arrays to use INTEGER type. This works OK as far as i can
tell; and it speeds up CUSTOMs graphics editing areas in DOSBox.

I'll attach a patch shortly.

From: @0ion9
Reported version: 20050519 Quaternion

holding ALT in map-resize screen ignores map size limits

[bz#2]

In the map editor, when resizing a map, you can press and hold the ALT key to
make the arrow keys resize the map faster. While the ALT key is held down, the
limits on maximum map size are not properly respected, allowing you to create a
map larger than the maximum size (16000 tiles in area) which crashes the program.

From: @bob-the-hamster
Reported version: 20040628 Ozarks

Is there a way to make sure Long hero names fit on the screen when inserted in textboxes?

[bz#39]

When you insert a hero name into a textbox using ${H#} ${C#} or ${P#}, if you do
not leave enough room, a long name may go over the right-hand side of the
screen, and wrap back on the other side in an ugly manner.

This happens because textboxes have no automatic wrapping support.

Fixing this bug would require a major overhaul of the way text boxes work.

From: @bob-the-hamster
Severity: feature request

Attack animation and weapon can remain on-screen during victory

[bz#31]

If you win the battle while a hero is in the middle of an attack, their weapon
picture can continue to display during the victory dance.

[Edit: attack animations and attacks by enemies can get stuck too --TMC]

Yet another bug that can only be fixed with a big cleanup of battle code :P

From: @bob-the-hamster
Reported version: 20040628 Ozarks

weapon graphics cannot be perfectly aligned with hero graphics

[bz#29]

The position of weapon graphics in relationship to hero graphics is not
consistent, and is very difficult for the author to align.

I need to add weapon alignment data. This will probably come in the form of a
"hand" point for heroes, and a "handle" point for weapons.

From: @bob-the-hamster
Severity: feature request
Duplicates: bz⁠#58

No math overflow checking in battle

[bz#13]

There is currenty (almost) no math overflow checking in battle, so certain
situations, such as extremely high damage can result in a crash.

I need test cases with attacks that do so much damage they cause errors. 32767
is the maximum damage, but I am not sure in what situations exceeding that will
cause a crash.

From: @bob-the-hamster
Reported version: 20040628 Ozarks

Lockup on title screen or joystick calibration screen when using VDMSound (joystick related)

[bz#8]

Sometimes when running GAME.EXE under VDMS the game will lock up at the title
screen or the joystick calibration screen after several seconds. This is somehow
related to VDMS's joystick support.

Need more information:
* Does this happen on aall computers, or just for some people?
* Can this bug be avoided by disabling VDMS's joystick support?
* Exactly how much time must pass on the title screne or joystick calibration
screen before GAME locks up?

From: @bob-the-hamster
Reported version: 20040628 Ozarks
Operating system: Windows XP

"Oscillate" attacks animate as "Normal" attacks when used on Allies

[bz#6]

It has been reported to me that "Oscillate" attacks animate as "Normal" attacks
when used on Allies (need confirmation)

In my own tests oscillate animation seems to work fine, so the problem may be
dependand upon which attack motion or attacker motion is used, maybe? If so,
which motions do it right? which do it wrong?

From: @bob-the-hamster
Reported version: 20040628 Ozarks
Severity: minor

Extract library declarations to include file

[bz#48]

A bit of code reorganisation to help with porting. All function declarations for the assembly-language library moved to a single include file, and all source files changed to reflect this.

From: Simon Bradley <neworiginal>
Reported version: 20050519 Quaternion

random lockups on the hour

[bz#43]

Not yet sure if it hapens every hour, but when playing under VDMS, game.exe will
crash on the hour. Running on winXP. At least Fenrir-Lunaris also has
encountered this bug

needs more testing

From: @rversteegen
Reported version: unknown

CUSTOM does no error checking for NPCs that point to text boxes that have been deleted

[bz#20]

If an NPC (or a plotscript) displays a text box that does not exist, unusual
things can happen, including possibly a crash.

Normally you cannot assing non-existant text boxes to NPC's, but you can assign
a text box to aan NPC, and then delete the text box.

I think correct behavior for a non-existant text box would be to just display an
empty text box.

From: @bob-the-hamster
Reported version: 20040628 Ozarks

Some plotscripting commands return seemingly valid values when they fail

[bz#36]

The command NPC Y(#) will return the ID number of the NPC referenced if no
copies of that NPC exist on the given map. It should return a value of -1 to
indicate that there are none of the referenced NPCs.

From: Mike Willis <msw188>
Reported version: 20040628 Ozarks
Operating system: Windows ME

out of battle stat increases go away after level-up

[bz#1]

Items that increase stats (not including HP and MP) outside of battle are
supposed to permanently increase the max stat, but that is currently not
happening. only the "current" stat gets increased, so the effect goes away after
they next equip or level up

From: @bob-the-hamster
Reported version: 20040628 Ozarks

Maps can be resized to invalid dimensions

[bz#40]

When resizing a map, normally you cannot make the width less than 16, and the
height less than 10. However, when making one dimension very large, causing the
other to be reduced to fit in the 32000 tile limit, the other dimension can be
reduced beyond the minimum.

A map with a tiny (less than minimum) dimension can still be "edited", but it
will appear glitched.

From: @pkmnfrk
Reported version: 20040628 Ozarks

NPCs cannot walk across the edges of a wraparound map

[bz#27]

NPCs cannot walk across the edges of a wraparound map. Although the hero may
walk across the edges, enemys stop at the edges as if it was an invisible wall.

This is because the NPC code was all written before I added walkaround map
support as an afterthought.

From: @bob-the-hamster
Reported version: 20040628 Ozarks

using a jump attack on a target that is jumping can cause the first jumper to get stuck off the screen

[bz#10]

using a jump attack on a target that is jumping can cause the first jumper to
get stuck off the screen

If both an enemy and a hero attack each other with a jump attack at the same
time, the one who jumped first never comes down.

Technically, only their graphics get stuck off-screen. IIRC, they still get
their turn, and can still keep attacking.

Fixing this requires me to re-write and clean up a lot of battle code. Something
I have to do anyway, but that I am not looking forward too :P

From: @bob-the-hamster
Reported version: 20040628 Ozarks

If all targetable enemies are killed before an attack is executed, a hero may attack an untargetable or nonexistent enemy.

[bz#38]

Act in advance of the battle-engine by choosing actions quickly.
If an enemy-targeted action is not-yet-executed when the battle ends*, it may
target a empty enemy slot instead of canceling out. Most obvious in attacks
involving the striker moving to a place adjacent to the enemy.

*when i defeat all enemies but the textboxes informing me of exp,gp, items
gained have yet to appear.

From: @0ion9
Reported version: 20040628 Ozarks

QB71 not actually supported

[bz#50]

There are a couple of problems preventing the source from being compiled under
QB7.1 :

-stack() has not been renamed astack() in sglobals.bi
-bcom45.lib should not be linked anymore
-bcl71enr.lib needs to be made available to FREELINK instead (it is
automatically added for linking by qb71, it seems)
-nocom.obj should no longer be linked, it seems that it is contained in
bcl71enr.lib (linking both results in duplicate definition warnings)

From: @rversteegen
Reported version: unknown

enemy spawned backwards in place of "flee-instead-of-die" enemy

[bz#35]

When you kill an enemy set to "Flee instead of die" and another enemy is spawned
in its place, the new enemy is facing backwards.

I just need to reset the enemy's direction after it finishes dying. this should
be fairly simple, in comparison to the other messy battle bugs that remain,
anyway :)

From: @bob-the-hamster
Reported version: 20040628 Ozarks

stat bonuses applied outside of battle get reset after a level-up

[bz#41]

From Rya:

Before I start replying, there's one thing. You said you can raise the maximum
stats if you let the spell raise stats outside of battle. I tried that now
because you weren't so sure and found out that it works, but only until the hero
levels up. Then the stat will be reset to the normal.
(sorry if I told you already, but I can't remember it ^^")

I remember this bug, and thing it should be pretty easy to fix. IIRC, the
stat-bonus code is only applying the bonus to the "Current" stat and increasing
it over the maximum, and it should be applying the bonus to both the current and
maximum at the same time... or something like that

From: @bob-the-hamster
Reported version: 20040628 Ozarks
Duplicates: bz#1 (#917)

If you save on a door, you will go through the door when you load

[bz#21]

If you save on a door, you will go through the door when you load. This happens
because doors only activate when you step on them, after completing a movement,
but loading from a saved game has to position your hero on the map, and this
positioning counts as a movement and triggers the door (also triggers step-on
NPC's in the same way.)

I need to write a special-case for loading to bypass this bug.

From: @bob-the-hamster
Reported version: 20040628 Ozarks

Default maptile doesn't use default pasability

[bz#17]

the default maptile on a map does not fill the map with that tile's passability.
For most purposes, this is no problem. On most maps, the default tile is a grass
or dirt tile with blank passability.

However, on some dungeon maps or cave maps, the author may want the default
passability to be impassable, or perhaps on a world-map the author may want the
default tile to fill the map with "B" passability for boats.

From: @bob-the-hamster
Reported version: 20040628 Ozarks
Severity: minor

Lockup after an indeterminate period of time.

[bz#37]

I encountered this bug with several games (possibly all would, were i to play
them long enough): I play a game with game.exe, and after a arbitrary amount of
time it locks up -- music keeps playing, i cannot do anything.

Games i see this bug with: Fox and the Eight-six, purgatory, Wandering Hamster..
anything sufficiently intersting that i might play for more than 15 minutes.

I intend to find out whether i can replicate this effect on SAMPLE.RPG ( i
suspect i can -- it seems independent both of the game and the saves)

From: @0ion9
Reported version: 20040628 Ozarks
Operating system: Windows 98

Step-on activated NPCs don't get triggered if you hold still and they walk underneath you

[bz#22]

Step-on activated NPCs don't get triggered if you hold still and they walk
underneath you

This happens because step-on activation is only triggered when the hero
completes a step, not when each NPC completes a step.

Checking step-on activation for every NPC in every game cycle might result in a
performance slowdown, so this bug might not be fixable.

From: @bob-the-hamster
Reported version: 20040628 Ozarks

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.