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)
|
||||
rb_mode = {"none": 0, "mapcompass": 1, "dungeon": 2}
|
||||
# algorithm: todo with "biased shuffles"
|
||||
algo_mode = {"balanced": 0, "equitable": 1, "vanilla_fill": 2, "dungeon_only": 3, "district": 4}
|
||||
# algorithm:
|
||||
algo_mode = {"balanced": 0, "equitable": 1, "vanilla_fill": 2, "dungeon_only": 3, "district": 4, 'major_only': 5}
|
||||
|
||||
# additions
|
||||
# psuedoboots does not effect code
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
# 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
|
||||
- ~~Merged DR v1.0.0.3 - MANY changes, major things listed below~~
|
||||
- New Item Fills (Districts/Vanilla/Major Location/Dungeon)
|
||||
|
||||
@@ -4,6 +4,7 @@ import RaceRandom as random
|
||||
from BaseClasses import CollectionState, RegionType
|
||||
from OverworldShuffle import build_accessible_region_list
|
||||
from OWEdges import OWTileRegions
|
||||
from Utils import stack_size3a
|
||||
|
||||
entrance_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=[]):
|
||||
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(dw_entrances)
|
||||
|
||||
|
||||
2
Main.py
2
Main.py
@@ -119,7 +119,7 @@ def main(args, seed=None, fish=None):
|
||||
logger.info(
|
||||
world.fish.translate("cli","cli","app.title") + "\n",
|
||||
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 ''
|
||||
)
|
||||
|
||||
|
||||
@@ -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 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):
|
||||
# setup mandatory connections
|
||||
|
||||
2
Rom.py
2
Rom.py
@@ -33,7 +33,7 @@ from source.classes.SFX import randomize_sfx
|
||||
|
||||
|
||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||
RANDOMIZERBASEHASH = '786c28c4735da56f0dbca879d02b22f6'
|
||||
RANDOMIZERBASEHASH = '4a1dfc4fa793b8659a95d579f6a5a925'
|
||||
|
||||
|
||||
class JsonRom(object):
|
||||
|
||||
@@ -56,6 +56,20 @@ jsl.l OWLightWorldOrCrossed
|
||||
org $0aba6c ; < ? - Bank0a.asm:474 ()
|
||||
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)
|
||||
org $00d8c4 ; < ? - Bank00.asm:4068 ()
|
||||
jsl.l OWWorldCheck
|
||||
@@ -81,8 +95,6 @@ org $07aa34 ; < ? - Bank07.asm:6718 ()
|
||||
jsl.l OWWorldCheck
|
||||
org $08d408 ; < ? - ancilla_morph_poof.asm:48 ()
|
||||
jsl.l OWWorldCheck
|
||||
org $0aba99 ; < ? - Bank0a.asm:515 ()
|
||||
jsl.l OWWorldCheck
|
||||
org $0bfeab ; < ? - Bank0b.asm:36 ()
|
||||
jsl.l OWWorldCheck16 : nop
|
||||
org $0cffb6 ; < ? - ?.asm ? ()
|
||||
@@ -241,6 +253,60 @@ OWOldManSpeed:
|
||||
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
|
||||
OWEdgeTransition:
|
||||
{
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user