forked from mirror/openmw-tes3mp
fixed readme's for 0.5, various minor changes
git-svn-id: https://openmw.svn.sourceforge.net/svnroot/openmw/trunk@59 ea6a568a-9f4f-0410-981a-c910a81bb256
This commit is contained in:
parent
d5709fa5f3
commit
5733869327
9 changed files with 76 additions and 41 deletions
|
@ -76,14 +76,31 @@ OIS: http://sourceforge.net/projects/wgois/
|
|||
FFmpeg: http://ffmpeg.mplayerhq.hu/download.html
|
||||
Bullet: http://bulletphysics.com/
|
||||
|
||||
|
||||
Setting up Bullet
|
||||
-----------------
|
||||
|
||||
Bullet is not yet included in most Linux distributions. Follow these
|
||||
instructions for setting it up manually.
|
||||
Bullet is not yet included in most Linux distributions, and must
|
||||
usually be compiled manually. Consult the documentation included with
|
||||
Bullet for instructions on compiling.
|
||||
|
||||
(to be written)
|
||||
After compiling, you should have the files libbulletdynamics.a,
|
||||
libbulletcollision.a and libbulletmath.a. (Depending on build method,
|
||||
you may end up with names like libLibBulletDynamics.a instead.) Copy
|
||||
or link these to bullet/ in the openmw directory (and rename them to
|
||||
the libbulletdynamics.a etc if necessary.)
|
||||
|
||||
Example:
|
||||
cd openmw/bullet
|
||||
ln -s ~/software/bullet-2.72/src/BulletCollision/libbulletcollision.a .
|
||||
|
||||
Next, create a link to the "src" directory in openmw/include/bullet/ .
|
||||
|
||||
Example:
|
||||
cd openmw
|
||||
mkdir -p include
|
||||
cd include
|
||||
ln -s ~/software/bullet-2.72/src bullet
|
||||
|
||||
|
||||
Choosing a D compiler
|
||||
|
|
|
@ -29,8 +29,8 @@ Dependencies:
|
|||
To compile OpenMW you need Mingw with g++ (a C++ compiler) and gdc
|
||||
(the D compiler.) You can find them here:
|
||||
|
||||
Mingw http://sourceforge.net/projects/mingw/
|
||||
gdc http://sourceforge.net/projects/gdcwin/
|
||||
Mingw: http://sourceforge.net/projects/mingw/
|
||||
gdc: http://sourceforge.net/projects/gdcwin/
|
||||
|
||||
Note that the "official" D compiler, DMD, will not currently work on
|
||||
Windows, because it is uses an object format incompatible with most
|
||||
|
@ -70,8 +70,8 @@ Manually installing dependencies:
|
|||
---------------------------------
|
||||
|
||||
If you download the DLL pack mentioned above, you can skip this
|
||||
section. If you wish to install dependencies manually though, here is
|
||||
a list of dependencies and where you can find them:
|
||||
section. If you wish to install dependencies manually, here is a list
|
||||
of dependencies and where you can find them:
|
||||
|
||||
OGRE: http://ogre3d.org
|
||||
OIS: Comes with the Ogre SDK
|
||||
|
@ -88,9 +88,9 @@ FFmpeg must be built under Mingw (not Cygwin!). I found the following
|
|||
link helpful (read the comments as well, not just the post itself):
|
||||
http://www.gooli.org/blog/building-ffmpeg-for-windows-with-msys-and-mingw/
|
||||
|
||||
After building, place the dll files in the openmw "root" (same place
|
||||
as build_openmw.bat) and the include files in includes/ffmpeg. Refer
|
||||
to build_openmw.bat for the exact names and locations of expected files.
|
||||
After building, place the dlls in the openmw "root" (same place as
|
||||
build_openmw.bat) and the include files in includes/ffmpeg. Refer to
|
||||
build_openmw.bat for the exact names and locations of expected files.
|
||||
|
||||
Bullet:
|
||||
|
||||
|
|
|
@ -22,8 +22,8 @@ openmw-dll-pack.zip - library pack
|
|||
You only need the binary or the source package, not both. The DLL pack
|
||||
is needed in both cases.
|
||||
|
||||
If downloaded the source release, please read COMPILE-win32.txt before
|
||||
reading the rest of this file.
|
||||
NOTE: If downloaded the SOURCE release, please read COMPILE-win32.txt
|
||||
before reading the rest of this file.
|
||||
|
||||
|
||||
Configuration
|
||||
|
@ -31,7 +31,7 @@ Configuration
|
|||
|
||||
OpenMW assumes you have the Morrowind data files in c:\Program
|
||||
Files\Bethesda Softworks\Morrowind\Data Files\ . If this is not where
|
||||
you have installed Morrowind, you should edit the openmw.ini file.
|
||||
you have installed Morrowind, you should edit the file openmw.ini.
|
||||
|
||||
|
||||
Running
|
||||
|
@ -40,9 +40,9 @@ Running
|
|||
Just run openmw.exe and enjoy! ;-)
|
||||
|
||||
The first time you run OpenMW, you will be asked to set screen
|
||||
resolution and other graphics settings. To be safe, it's not
|
||||
recommended to select fullscreen mode on the first run. You can bring
|
||||
up the dialogue at any time by using the -oc switch.
|
||||
resolution and other graphics settings. To be safe, I don't recommend
|
||||
setting fullscreen mode on the first run. You can bring up the
|
||||
dialogue at any time by using the -oc switch.
|
||||
|
||||
Move around with WASD or arrow keys, change physics mode (walking,
|
||||
flying, ghost) with 't', exit with 'q' or escape.
|
||||
|
|
17
README.txt
17
README.txt
|
@ -5,8 +5,8 @@ Written by Nicolay Korslund
|
|||
Email: korslund@gmail.com
|
||||
WWW: http://openmw.snaptoad.com
|
||||
License: See GPL3.txt
|
||||
Current version: 0.5 (WIP)
|
||||
Date: 2008 nov. 4
|
||||
Current version: 0.5
|
||||
Date: 2008 nov. 5
|
||||
|
||||
|
||||
QUICK NOTE: You must own and install Morrowind before you can use
|
||||
|
@ -19,7 +19,7 @@ Installation
|
|||
============
|
||||
|
||||
Currently supported platforms are Windows, Linux and FreeBSD. Most
|
||||
testing has been done on Ubuntu 8.04 and Windows XP Professional.
|
||||
testing is done on Ubuntu 8.04 and Windows XP Professional.
|
||||
|
||||
For instructions, see one of the following:
|
||||
|
||||
|
@ -27,9 +27,8 @@ README-win32.txt - instructions for binary Windows release
|
|||
COMPILE-win32.txt - instructions for building from source on Windows
|
||||
COMPILE-linux.tx - instructions for building from source on Linux / Unix
|
||||
|
||||
Linux 64 does NOT work because of problems with the D compiler. This
|
||||
will hopefully be sorted out at some point, but right now it is not
|
||||
supported.
|
||||
Linux 64 does NOT work, because of problems with the D compiler. We
|
||||
hope to sort this out at some point, but right now it's not supported.
|
||||
|
||||
|
||||
|
||||
|
@ -69,18 +68,18 @@ Thanks go out to:
|
|||
Changelog:
|
||||
==========
|
||||
|
||||
0.5 (WIP)
|
||||
0.5 (2008 nov. 5) - latest release
|
||||
|
||||
- Collision detection with Bullet
|
||||
- Experimental walk & fall character physics
|
||||
- (WIP) Fixed various sound issues on Windows
|
||||
- New key bindings:
|
||||
t - toggle physics mode (walking, flying, ghost)
|
||||
n - night-eye: brightens the scene
|
||||
- Fixed incompatability with DMD 1.032 and newer
|
||||
- Various minor changes and updates
|
||||
|
||||
0.4 (2008 aug. 30) - latest release
|
||||
|
||||
0.4 (2008 aug. 30)
|
||||
|
||||
- switched from Audiere to OpenAL (BIG thanks to Chris Robinson)
|
||||
- added complete Makefile (again) as a alternative build tool
|
||||
|
|
|
@ -53,8 +53,11 @@ struct Race
|
|||
|
||||
// Attribute values for male/female
|
||||
int[2] strength, intelligence, willpower, agility,
|
||||
speed, endurance, personality, luck, height,
|
||||
weight;
|
||||
speed, endurance, personality, luck;
|
||||
|
||||
// The actual eye level height (in game units) is (probably) given
|
||||
// as 'height' times 128. This has not been tested yet.
|
||||
float[2] height, weight;
|
||||
|
||||
Flags flags; // 0x1 - playable, 0x2 - beast race
|
||||
|
||||
|
|
16
openmw.d
16
openmw.d
|
@ -381,10 +381,20 @@ void main(char[][] args)
|
|||
writefln();
|
||||
}
|
||||
/*
|
||||
writefln("Statics:");
|
||||
foreach(ref s; cd.statics)
|
||||
writefln("Races:");
|
||||
foreach(s; races.names)
|
||||
{
|
||||
writefln("%s: %s", s.m.id, s.m.model.getName);
|
||||
writefln("%s:", s.id);
|
||||
writefln(" strength: ", s.data.strength[0]);
|
||||
writefln(" intelligence: ", s.data.intelligence[0]);
|
||||
writefln(" willpower: ", s.data.willpower[0]);
|
||||
writefln(" agility: ", s.data.agility[0]);
|
||||
writefln(" speed: ", s.data.speed[0]);
|
||||
writefln(" endurance: ", s.data.endurance[0]);
|
||||
writefln(" personality: ", s.data.personality[0]);
|
||||
writefln(" luck: ", s.data.luck[0]);
|
||||
writefln(" height: ", s.data.height[0]);
|
||||
writefln(" weight: ", s.data.weight[0]);
|
||||
}
|
||||
*/
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ Mute Sound=m
|
|||
Toggle Fullscreen Mode=f
|
||||
Toggle Battle Music=space
|
||||
Toggle Physics Mode=t
|
||||
Toggle Nighteye=n
|
||||
OGRE Test Action=g
|
||||
Pause=pause,p
|
||||
Screen Shot=print_screen
|
||||
|
|
|
@ -81,9 +81,7 @@ struct SoundList
|
|||
{
|
||||
SoundInstance.setPlayerPos(x,y,z,frontx,fronty,frontz,upx,upy,upz);
|
||||
foreach(ref s; list)
|
||||
{
|
||||
if(s.owner) s.updateSound();
|
||||
}
|
||||
if(s.owner) s.updateSound();
|
||||
}
|
||||
|
||||
void kill()
|
||||
|
|
23
sound/sfx.d
23
sound/sfx.d
|
@ -106,9 +106,9 @@ struct SoundFile
|
|||
int total = 0;
|
||||
do
|
||||
{
|
||||
// Grow by an arbitrary amount. Should be big enough to get the
|
||||
// whole sound in one or two iterations, but not allocate too much
|
||||
// memory in case its short
|
||||
// Grow by an arbitrary amount. Should be big enough to get
|
||||
// the whole sound in one or two iterations, but not allocate
|
||||
// too much memory in case it's short
|
||||
outData.length = outData.length+8192;
|
||||
int length = avc_getAVAudioData(audioHandle, outData.ptr+total, outData.length-total);
|
||||
total += length;
|
||||
|
@ -135,9 +135,6 @@ struct SoundFile
|
|||
}
|
||||
|
||||
// Get an instance of this resource.
|
||||
// FIXME: Should not call fail() here since it's quite possible for this to
|
||||
// fail (on hardware drivers). When it does, it should check for an existing
|
||||
// sound it doesn't need and kill it, then try again
|
||||
SoundInstance getInstance()
|
||||
{
|
||||
SoundInstance si;
|
||||
|
@ -232,6 +229,8 @@ struct SoundInstance
|
|||
// culling for moving and stationary sounds
|
||||
void updateSound()
|
||||
{
|
||||
if(owner is null) return;
|
||||
|
||||
ALfloat lp[3];
|
||||
ALfloat p[3];
|
||||
ALfloat dist;
|
||||
|
@ -243,8 +242,16 @@ struct SoundInstance
|
|||
p[0] -= lp[0];
|
||||
p[1] -= lp[1];
|
||||
p[2] -= lp[2];
|
||||
if((p[0]*p[0] + p[1]*p[1] + p[2]*p[2]) > dist*dist)
|
||||
alSourcef(inst, AL_GAIN, 0);
|
||||
|
||||
// If the sound is out of range, mute it
|
||||
ALfloat d2 = p[0]*p[0] + p[1]*p[1] + p[2]*p[2];
|
||||
if(d2 > dist*dist)
|
||||
{
|
||||
alSourcef(inst, AL_GAIN, 0);
|
||||
|
||||
// If the sound is really out of range, we should reclaim
|
||||
// it. This is not implemented yet.
|
||||
}
|
||||
else
|
||||
alSourcef(inst, AL_GAIN, volume);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue