Merge branch 'OverworldShuffleDev' into OverworldShuffle
This commit is contained in:
@@ -3309,8 +3309,8 @@ e_dmg = {"default": 0, "shuffled": 1, "random": 2}
|
|||||||
|
|
||||||
# byte 8: RRAA A??? (restrict boss mode, algorithm, ? = unused)
|
# byte 8: RRAA A??? (restrict boss mode, algorithm, ? = unused)
|
||||||
rb_mode = {"none": 0, "mapcompass": 1, "dungeon": 2}
|
rb_mode = {"none": 0, "mapcompass": 1, "dungeon": 2}
|
||||||
# algorithm: todo with "biased shuffles"
|
# algorithm:
|
||||||
algo_mode = {"balanced": 0, "equitable": 1, "vanilla_fill": 2, "dungeon_only": 3, "district": 4}
|
algo_mode = {"balanced": 0, "equitable": 1, "vanilla_fill": 2, "dungeon_only": 3, "district": 4, 'major_only': 5}
|
||||||
|
|
||||||
# additions
|
# additions
|
||||||
# psuedoboots does not effect code
|
# psuedoboots does not effect code
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
### 0.2.7.1
|
||||||
|
- Map checks in Mixed OWR now will show the proper tile images when screens are swapped (ie. Pyramid shows in the LW if that screen is swapped)
|
||||||
|
- Added mystery seed number to spoiler log, so it is easier to match a spoiler log to a rom filename
|
||||||
|
- Added proper branch-specific versioning (ie. Dev branch has '-u' suffixing the version number while Release/Main branch does not)
|
||||||
|
|
||||||
### 0.2.7.0
|
### 0.2.7.0
|
||||||
- ~~Merged DR v1.0.0.3 - MANY changes, major things listed below~~
|
- ~~Merged DR v1.0.0.3 - MANY changes, major things listed below~~
|
||||||
- New Item Fills (Districts/Vanilla/Major Location/Dungeon)
|
- New Item Fills (Districts/Vanilla/Major Location/Dungeon)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import RaceRandom as random
|
|||||||
from BaseClasses import CollectionState, RegionType
|
from BaseClasses import CollectionState, RegionType
|
||||||
from OverworldShuffle import build_accessible_region_list
|
from OverworldShuffle import build_accessible_region_list
|
||||||
from OWEdges import OWTileRegions
|
from OWEdges import OWTileRegions
|
||||||
|
from Utils import stack_size3a
|
||||||
|
|
||||||
entrance_pool = list()
|
entrance_pool = list()
|
||||||
exit_pool = list()
|
exit_pool = list()
|
||||||
@@ -1481,6 +1482,10 @@ def junk_fill_inaccessible(world, player):
|
|||||||
def connect_inaccessible_regions(world, lw_entrances, dw_entrances, caves, player, ignore_list=[]):
|
def connect_inaccessible_regions(world, lw_entrances, dw_entrances, caves, player, ignore_list=[]):
|
||||||
invFlag = world.mode[player] == 'inverted'
|
invFlag = world.mode[player] == 'inverted'
|
||||||
|
|
||||||
|
if stack_size3a() > 500:
|
||||||
|
from DungeonGenerator import GenerationException
|
||||||
|
raise GenerationException(f'Infinite loop detected at \'connect_inaccessible_regions\'')
|
||||||
|
|
||||||
random.shuffle(lw_entrances)
|
random.shuffle(lw_entrances)
|
||||||
random.shuffle(dw_entrances)
|
random.shuffle(dw_entrances)
|
||||||
|
|
||||||
|
|||||||
2
Main.py
2
Main.py
@@ -119,7 +119,7 @@ def main(args, seed=None, fish=None):
|
|||||||
logger.info(
|
logger.info(
|
||||||
world.fish.translate("cli","cli","app.title") + "\n",
|
world.fish.translate("cli","cli","app.title") + "\n",
|
||||||
ORVersion,
|
ORVersion,
|
||||||
world.seed,
|
"%s (%s)" % (world.seed, str(args.outputname)) if str(args.outputname).startswith('M') else world.seed,
|
||||||
Settings.make_code(world, 1) if world.players == 1 else ''
|
Settings.make_code(world, 1) if world.players == 1 else ''
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,9 @@ from BaseClasses import OWEdge, WorldType, RegionType, Direction, Terrain, PolSl
|
|||||||
from Regions import mark_dark_world_regions, mark_light_world_regions
|
from Regions import mark_dark_world_regions, mark_light_world_regions
|
||||||
from OWEdges import OWTileRegions, OWTileGroups, OWEdgeGroups, OWExitTypes, OpenStd, parallel_links, IsParallel
|
from OWEdges import OWTileRegions, OWTileGroups, OWEdgeGroups, OWExitTypes, OpenStd, parallel_links, IsParallel
|
||||||
|
|
||||||
__version__ = '0.2.7.0-u'
|
version_number = '0.2.7.1'
|
||||||
|
version_branch = '-u'
|
||||||
|
__version__ = '%s%s' % (version_number, version_branch)
|
||||||
|
|
||||||
def link_overworld(world, player):
|
def link_overworld(world, player):
|
||||||
# setup mandatory connections
|
# setup mandatory connections
|
||||||
|
|||||||
2
Rom.py
2
Rom.py
@@ -33,7 +33,7 @@ from source.classes.SFX import randomize_sfx
|
|||||||
|
|
||||||
|
|
||||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||||
RANDOMIZERBASEHASH = '786c28c4735da56f0dbca879d02b22f6'
|
RANDOMIZERBASEHASH = '4a1dfc4fa793b8659a95d579f6a5a925'
|
||||||
|
|
||||||
|
|
||||||
class JsonRom(object):
|
class JsonRom(object):
|
||||||
|
|||||||
@@ -56,6 +56,20 @@ jsl.l OWLightWorldOrCrossed
|
|||||||
org $0aba6c ; < ? - Bank0a.asm:474 ()
|
org $0aba6c ; < ? - Bank0a.asm:474 ()
|
||||||
jsl.l OWMapWorldCheck16 : nop
|
jsl.l OWMapWorldCheck16 : nop
|
||||||
|
|
||||||
|
; Mixed Overworld Map
|
||||||
|
org $0ABA99
|
||||||
|
WorldMap_LoadDarkWorldMap:
|
||||||
|
LDA.b $10 : CMP.b #$14 ; attract module
|
||||||
|
BEQ .vanilla_light
|
||||||
|
LDA.l OWMode+1 : AND.b #$04 : BNE .mixed
|
||||||
|
LDA.b $8A : AND.b #$40
|
||||||
|
BEQ .vanilla_light
|
||||||
|
.mixed
|
||||||
|
PHB : PHK : PLB
|
||||||
|
JSL LoadMapDarkOrMixed
|
||||||
|
PLB
|
||||||
|
.vanilla_light ; $0ABAB5
|
||||||
|
|
||||||
;(replacing -> LDA $8A : AND.b #$40)
|
;(replacing -> LDA $8A : AND.b #$40)
|
||||||
org $00d8c4 ; < ? - Bank00.asm:4068 ()
|
org $00d8c4 ; < ? - Bank00.asm:4068 ()
|
||||||
jsl.l OWWorldCheck
|
jsl.l OWWorldCheck
|
||||||
@@ -81,8 +95,6 @@ org $07aa34 ; < ? - Bank07.asm:6718 ()
|
|||||||
jsl.l OWWorldCheck
|
jsl.l OWWorldCheck
|
||||||
org $08d408 ; < ? - ancilla_morph_poof.asm:48 ()
|
org $08d408 ; < ? - ancilla_morph_poof.asm:48 ()
|
||||||
jsl.l OWWorldCheck
|
jsl.l OWWorldCheck
|
||||||
org $0aba99 ; < ? - Bank0a.asm:515 ()
|
|
||||||
jsl.l OWWorldCheck
|
|
||||||
org $0bfeab ; < ? - Bank0b.asm:36 ()
|
org $0bfeab ; < ? - Bank0b.asm:36 ()
|
||||||
jsl.l OWWorldCheck16 : nop
|
jsl.l OWWorldCheck16 : nop
|
||||||
org $0cffb6 ; < ? - ?.asm ? ()
|
org $0cffb6 ; < ? - ?.asm ? ()
|
||||||
@@ -241,6 +253,60 @@ OWOldManSpeed:
|
|||||||
rtl
|
rtl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LoadMapDarkOrMixed:
|
||||||
|
{
|
||||||
|
CMP.b #$04 : REP #$30 : BEQ .mixed
|
||||||
|
LDX.w #$03FE ; draw vanilla Dark World (what we wrote over)
|
||||||
|
.copy_next
|
||||||
|
LDA.w $D739,X : STA.w $1000,X ; DB is $0A
|
||||||
|
DEX : DEX : BPL .copy_next
|
||||||
|
BRL .end
|
||||||
|
.mixed
|
||||||
|
LDX.b $8A
|
||||||
|
LDA.l OWTileWorldAssoc,X
|
||||||
|
STA.b $00
|
||||||
|
LDY.w #$139C
|
||||||
|
LDX.w #$003F
|
||||||
|
.next_screen
|
||||||
|
PHX
|
||||||
|
LDA.l OWTileWorldAssoc,X
|
||||||
|
EOR.b $00
|
||||||
|
AND.w #$0040
|
||||||
|
BEQ .light
|
||||||
|
TYX : BRA .copy_screen
|
||||||
|
.light
|
||||||
|
TXA : AND.w #$0024 : LSR : TAX
|
||||||
|
TYA : SEC : SBC.l LWQuadrantOffsets,X
|
||||||
|
TYX : TAY
|
||||||
|
.copy_screen ; more efficient to have X on the right side
|
||||||
|
LDA.w $C739+$00,Y : STA.b $00,X
|
||||||
|
LDA.w $C739+$02,Y : STA.b $02,X
|
||||||
|
LDA.w $C739+$20,Y : STA.b $20,X
|
||||||
|
LDA.w $C739+$22,Y : STA.b $22,X
|
||||||
|
LDA.w $C739+$40,Y : STA.b $40,X
|
||||||
|
LDA.w $C739+$42,Y : STA.b $42,X
|
||||||
|
LDA.w $C739+$60,Y : STA.b $60,X
|
||||||
|
LDA.w $C739+$62,Y : STA.b $62,X
|
||||||
|
TXY : PLX
|
||||||
|
DEY : DEY : DEY : DEY ; move one screen left
|
||||||
|
TXA : AND.w #$0007 : BNE .same_row
|
||||||
|
TYA : SEC : SBC.w #$0060 : TAY ; move one screen row up
|
||||||
|
.same_row
|
||||||
|
DEX
|
||||||
|
BPL .next_screen
|
||||||
|
.end
|
||||||
|
SEP #$30
|
||||||
|
LDA.b #$15 : STA.b $17 ; what we wrote over
|
||||||
|
RTL
|
||||||
|
|
||||||
|
LWQuadrantOffsets:
|
||||||
|
dw $1000-$0210 ; top left
|
||||||
|
dw $0C00-$01F0 ; top right
|
||||||
|
dw 0,0,0,0,0,0
|
||||||
|
dw $0800+$01F0 ; bottom left
|
||||||
|
dw $0400+$0210 ; bottom
|
||||||
|
}
|
||||||
|
|
||||||
org $aa9000
|
org $aa9000
|
||||||
OWEdgeTransition:
|
OWEdgeTransition:
|
||||||
{
|
{
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user