game

package
v0.0.0-...-8a42bd8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 22, 2023 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PLAYER_LEON   = 0
	PLAYER_CLAIRE = 1

	DIFFICULTY_EASY   = 0
	DIFFICULTY_NORMAL = 1

	GAME_LOAD_ROOM   = 0
	GAME_LOAD_CAMERA = 1
	GAME_LOOP        = 2
)
View Source
const (
	PLAYER_FORWARD_SPEED  = 4000
	PLAYER_BACKWARD_SPEED = 1000
)
View Source
const (
	BASE_FOLDER         = "data/"
	COMMON_FOLDER       = BASE_FOLDER + "Common/"
	COMMON_BIN_FOLDER   = COMMON_FOLDER + "bin/"
	ROOMCUT_FILE        = COMMON_BIN_FOLDER + "roomcut.bin"
	ITEMDATA_FILE       = COMMON_BIN_FOLDER + "itemdata.bin"
	ESPDATA1_FILE       = COMMON_BIN_FOLDER + "espdat1.bin"
	ESPDATA2_FILE       = COMMON_BIN_FOLDER + "espdat2.bin"
	COMMON_DOOR_FOLDER  = COMMON_FOLDER + "Door/"
	DOOR_FILE           = COMMON_DOOR_FOLDER + "Door%02x.DO2"
	PL_FOLDER           = BASE_FOLDER + "Pl0/"
	LEON_MODEL_FILE     = PL_FOLDER + "PLD/PL00.PLD"
	ENEMY_FILE          = PL_FOLDER + "Emd0/EM%03x.EMD"
	RDT_FOLDER          = PL_FOLDER + "RDP/"
	RDT_FILE            = RDT_FOLDER + "ROOM%01d%02x%01d.RDT"
	COMMON_DATA_FOLDER  = COMMON_FOLDER + "DATP/"
	CORE_SPRITE_FILE    = COMMON_DATA_FOLDER + "CORE00.ESP"
	INVENTORY_FILE      = COMMON_DATA_FOLDER + "st0_pl.tim"
	MENU_IMAGE_FILE     = COMMON_DATA_FOLDER + "Tit_bg.adt"
	MENU_TEXT_FILE      = COMMON_DATA_FOLDER + "tmojipal.bin"
	ITEMALL_FILE        = COMMON_DATA_FOLDER + "itemall.bin"
	SAVE_SCREEN_FILE    = COMMON_DATA_FOLDER + "type00.adt"
	COMMON_SOUND_FOLDER = BASE_FOLDER + "Common/Sound/"
)

Variables

View Source
var (
	// Jump to other rooms directly
	DebugLocations = map[RoomMapKey]mgl32.Vec3{
		RoomMapKey{1, 0x00}: mgl32.Vec3{18800, 0, -3160},
		RoomMapKey{1, 0x01}: mgl32.Vec3{-15047, 0, -11799},
		RoomMapKey{1, 0x02}: mgl32.Vec3{-25059, 0, 20944},
		RoomMapKey{1, 0x18}: mgl32.Vec3{-9212, 0, 2520},
		RoomMapKey{1, 0x19}: mgl32.Vec3{-6168, 0, -15445},
		RoomMapKey{1, 0x1a}: mgl32.Vec3{-7250, 0, -550},
		RoomMapKey{1, 0x1b}: mgl32.Vec3{-8353, 0, -20638},
	}
)

Functions

func PathExists

func PathExists(path string) (bool, error)

func ValidateFilesExist

func ValidateFilesExist()

Types

type GameDef

type GameDef struct {
	StageId     int
	RoomId      int
	CameraId    int
	StateStatus int
	RoomScript  RoomScript
	GameWorld   *world.GameWorld
	Player      *Player
}

func NewGame

func NewGame(stageId int, roomId int, cameraId int) *GameDef

func (*GameDef) ChangeCamera

func (gameDef *GameDef) ChangeCamera(newCamera int)

func (*GameDef) GetBackgroundImageNumber

func (g *GameDef) GetBackgroundImageNumber() int

func (*GameDef) GetRoomFilename

func (g *GameDef) GetRoomFilename(playerNum int) string

stage starts from 1 room number is a hex from 0 player number is 0 or 1

func (*GameDef) HandleCameraSwitch

func (gameDef *GameDef) HandleCameraSwitch(position mgl32.Vec3)

func (*GameDef) HandlePlayerActionButton

func (gameDef *GameDef) HandlePlayerActionButton(collisionEntities []fileio.CollisionEntity)

func (*GameDef) HandleRoomSwitch

func (gameDef *GameDef) HandleRoomSwitch(position mgl32.Vec3)

func (*GameDef) NewRoomScript

func (gameDef *GameDef) NewRoomScript(rdtOutput *fileio.RDTOutput) RoomScript

func (*GameDef) NextRoom

func (gameDef *GameDef) NextRoom()

func (*GameDef) PrevRoom

func (gameDef *GameDef) PrevRoom()

type Player

type Player struct {
	Position      mgl32.Vec3
	RotationAngle float32
	PoseNumber    int
}

func NewPlayer

func NewPlayer(initialPosition mgl32.Vec3, initialRotationAngle float32) *Player

Position is in world space Rotation angle is in degrees

func (*Player) GetModelMatrix

func (p *Player) GetModelMatrix() mgl32.Mat4

func (*Player) HandlePlayerInputBackward

func (player *Player) HandlePlayerInputBackward(collisionEntities []fileio.CollisionEntity, timeElapsedSeconds float64)

func (*Player) HandlePlayerInputForward

func (player *Player) HandlePlayerInputForward(collisionEntities []fileio.CollisionEntity, timeElapsedSeconds float64)

func (*Player) PredictPositionBackward

func (player *Player) PredictPositionBackward(timeElapsedSeconds float64) mgl32.Vec3

func (*Player) PredictPositionBackwardSlope

func (player *Player) PredictPositionBackwardSlope(
	slopedEntity *fileio.CollisionEntity,
	timeElapsedSeconds float64,
) mgl32.Vec3

func (*Player) PredictPositionClimbBox

func (player *Player) PredictPositionClimbBox() mgl32.Vec3

func (*Player) PredictPositionForward

func (player *Player) PredictPositionForward(timeElapsedSeconds float64) mgl32.Vec3

func (*Player) PredictPositionForwardSlope

func (player *Player) PredictPositionForwardSlope(
	slopedEntity *fileio.CollisionEntity,
	timeElapsedSeconds float64,
) mgl32.Vec3

func (*Player) PredictPositionSlope

func (player *Player) PredictPositionSlope(predictPositionFlat mgl32.Vec3, slopedEntity *fileio.CollisionEntity) mgl32.Vec3

Player walks up or down the stairs or ramp

func (*Player) RotatePlayerLeft

func (player *Player) RotatePlayerLeft(timeElapsedSeconds float64)

func (*Player) RotatePlayerRight

func (player *Player) RotatePlayerRight(timeElapsedSeconds float64)

type RoomMapKey

type RoomMapKey struct {
	StageId int
	RoomId  int
}

type RoomScript

type RoomScript struct {
	InitScriptData fileio.ScriptFunction
	RoomScriptData fileio.ScriptFunction
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL