diff --git a/license_short.txt b/license_short.txt
index 99491fb..138d505 100644
--- a/license_short.txt
+++ b/license_short.txt
@@ -1,9 +1,4 @@
-Reggie Next - a supercharged fork of the modern level editor
Copyright (C) 2014 Treeki, Tempus, angelsl, JasonP27, Kinnay, MalStar1000, RoadrunnerWMC
Development forums: http://reggienext.byethost11.com/
-
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/readme.md b/readme.md
index 6141fd3..c91e9c4 100644
--- a/readme.md
+++ b/readme.md
@@ -3,9 +3,9 @@
----------------------------------------------------------------
-Homepage: http://rvlution.net/reggie/
-Support: http://rvlution.net/forums/
-On GitHub: https://github.com/RoadrunnerWMC/Reggie-Next
+Homepage & Support: http://reggienext.nsmbwii.com
+GitHub: https://github.com/RoadrunnerWMC/Reggie-Next
+Mac Port Github: https://github.com/MalStar1000/Reggie-Next-Mac
----------------------------------------------------------------
@@ -60,7 +60,7 @@ Developers:
* JasonP27 - ReggieMod Developer: Programmer, UI, Sprite Images
* Kamek64 - Reggie! Newer Sprites Developer: Programmer, Sprite Images
* ZementBlock - Sprite Data
- * MalStar1000 - Sprite Images, Other
+ * MalStar1000 - Sprite Images, Mac Port, Other
* Grop - Sprite Data
* joietyfull64 - Sprite Data
* MidiGuyDP - NewerSMBW Background Images & Names
diff --git a/reggie.py b/reggie.py
index dc07e53..8f62209 100644
--- a/reggie.py
+++ b/reggie.py
@@ -144,6 +144,7 @@ def loadResources(self):
Reads the info from self.cfgData and loads stuff
"""
self.basePix = QtGui.QPixmap(os.path.join('reggiedata', self.cfgData['base_image']))
+ #print(os.getcwd())
def loadFont(name):
fname = self.cfgData.get(name + '_font', 'Arial')
@@ -153,11 +154,13 @@ def loadFont(name):
wLim = self.cfgData.get(name + '_wrap_limit', 1024)
position = self.cfgData.get(name + '_position', (0, 0))
centered = self.cfgData.get(name + '_centered', False)
+ weight = self.cfgData.get(name + '_font_weight', 50)
font = QtGui.QFont()
font.setFamily(fname)
font.setBold(bold)
font.setPointSize(size)
+ font.setWeight(weight)
return font, position, color, centered, wLim
self.versionFontInfo = loadFont('version')
@@ -2443,7 +2446,7 @@ def LoadNumberFont():
if hasattr(s, 'WindowsVersion'):
NumberFont = QtGui.QFont('Tahoma', 7)
elif hasattr(s, 'MacintoshVersion'):
- NumberFont = QtGui.QFont('Lucida Grande', 9)
+ NumberFont = QtGui.QFont('Helvetica Neue', 9)
else:
NumberFont = QtGui.QFont('Sans', 8)
@@ -9664,9 +9667,9 @@ def InitAsEnglish(self):
15: 'Take a full size screenshot of your level for you to share',
16: 'Change Game Path...',
17: 'Set a different folder to load the game files from',
- 18: 'Reggie Next Preferences...',
+ 18: 'Preferences',
19: 'Change important Reggie Next settings',
- 20: 'Exit Reggie Next',
+ 20: 'Exit',
21: 'Exit the editor',
22: 'Select All',
23: 'Select all items in this area',
@@ -10511,8 +10514,31 @@ def __init__(self, scene, parent):
self.XScrollBar = QtWidgets.QScrollBar(Qt.Horizontal, parent)
self.setVerticalScrollBar(self.YScrollBar)
self.setHorizontalScrollBar(self.XScrollBar)
+ self.grabGesture(Qt.PinchGesture)
self.currentobj = None
+
+ #Gesture for Zoom
+ def event(self,event):
+ print('First Cond: ', event.type(), QtCore.QEvent.Gesture)
+ if event.type() == QtCore.QEvent.Gesture:
+ return self.myGestureZoomingFunction(event)
+ return QtWidgets.QGraphicsView.event(self, event)
+
+ def myGestureZoomingFunction(self, event):
+ # Make your zoom code here
+ print('Second Cond: ', event.gesture(Qt.PinchGesture))
+ if event.gesture(Qt.PinchGesture):
+ gesture = event.gesture(Qt.PinchGesture)
+ scale = gesture.scaleFactor()
+ print('Scale Factor: ', scale)
+ # scale = scale
+ self.scale(scale, scale) / 60
+
+ # accept the event
+ event.accept()
+ return True
+
def mousePressEvent(self, event):
"""
@@ -14606,6 +14632,9 @@ def __init__(self):
"""
Creates and initializes the widget
"""
+
+ QtWidgets.QGraphicsView.__init__(self)
+
QtWidgets.QWidget.__init__(self)
maxwidth = 512-128
maxheight = 20
@@ -14653,6 +14682,7 @@ def __init__(self):
self.setMinimumWidth(maxwidth)
self.setMaximumWidth(maxwidth)
self.setMaximumHeight(maxheight)
+ # self.grabGesture(Qt.PinchGesture)
def sliderMoved(self):
"""
@@ -14670,6 +14700,30 @@ def findIndexOfLevel(self, level):
for i, mainlevel in enumerate(mainWindow.ZoomLevels):
if float(mainlevel) == float(level): return i
+ #Gesture for Zoom
+ #def event(self, event, level):
+ ''' print('First Cond: ', event.type(), QtCore.QEvent.Gesture)
+ if event.type() == QtCore.QEvent.Gesture:
+ return self.myGestureZoomingFunction(event)
+ return QtWidgets.QGraphicsView.event(self, event)
+
+ def myGestureZoomingFunction(self, event):
+ # Make your zoom code here
+ print('Second Cond: ', event.gesture(Qt.PinchGesture))
+ if event.gesture(Qt.PinchGesture):
+ gesture = event.gesture(Qt.PinchGesture)
+ ZoomTo = gesture.scaleFactor()
+ print('Scale Factor: ', scale)
+ # scale = scale
+ self.scale(ZoomTo, ZoomTo) / 60
+
+ # accept the event
+ event.accept()
+ return True'''
+
+ ''' def zoomGesture(self)
+ # We need something to add here. '''
+
class ZoomStatusWidget(QtWidgets.QWidget):
"""
@@ -15500,7 +15554,7 @@ def __init__(self):
# set up the window
QtWidgets.QMainWindow.__init__(self, None)
- self.setWindowTitle('Reggie Level Editor Next')
+ self.setWindowTitle('Reggie Next')
self.setWindowIcon(QtGui.QIcon('reggiedata/icon.png'))
self.setIconSize(QtCore.QSize(16, 16))
@@ -15515,13 +15569,19 @@ def __init__(self):
self.view.XScrollBar.valueChanged.connect(self.XScrollChange)
self.view.YScrollBar.valueChanged.connect(self.YScrollChange)
self.view.FrameSize.connect(self.HandleWindowSizeChange)
-
+ #self.view.unifiedTitleAndToolBarOnMac = True
+ #self.setAttribute(Qt.WA_unifiedTitleAndToolBarOnMac)
+ #self.view.setAttribute(QWidgets.WA_unifiedTitleAndToolBarOnMac, True)
+
+
# make a 'ribbon' placeholder
self.ribbon = None
# done creating the window!
self.setCentralWidget(self.view)
-
+ # self.view.setAttribute(Qt.WA_TranslucentBackground, True)
+ #self.setAttribute(Qt.WA_TranslucentBackground, True)
+
# set up the clipboard stuff
self.clipboard = None
self.systemClipboard = QtWidgets.QApplication.clipboard()
@@ -15529,6 +15589,7 @@ def __init__(self):
# we might have something there already, activate Paste if so
self.TrackClipboardUpdates()
+ # self.grabGesture(Qt.PinchGesture)
def __init2__(self):
@@ -15596,6 +15657,11 @@ def SetupActionsAndMenus(self):
"""
self.RecentMenu = RecentFilesMenu()
self.GameDefMenu = GameDefMenu()
+ #self.view.setWindowFlags(Qt.WA_UnifiedTitleAndToolBarOnMac)
+ #self.setAttribute(Qt.WA_unifiedTitleAndToolBarOnMac, True)
+ self.setUnifiedTitleAndToolBarOnMac(True)
+ #self.setAttribute(Qt.WA_MacBrushedMetal, True)
+
self.ribbon = None
if UseRibbon:
@@ -15666,7 +15732,7 @@ def createMenubar(self):
self.CreateAction('showcomments', self.HandleCommentsVisibility, GetIcon('comments'), trans.stringOneLine('MenuItems', 116), trans.stringOneLine('MenuItems', 117), QtGui.QKeySequence('Ctrl+0'), True)
self.CreateAction('grid', self.HandleSwitchGrid, GetIcon('grid'), trans.stringOneLine('MenuItems', 60), trans.stringOneLine('MenuItems', 61), QtGui.QKeySequence('Ctrl+G'), False)
self.CreateAction('zoommax', self.HandleZoomMax, GetIcon('zoommax'), trans.stringOneLine('MenuItems', 62), trans.stringOneLine('MenuItems', 63), QtGui.QKeySequence('Ctrl+PgDown'), False)
- self.CreateAction('zoomin', self.HandleZoomIn, GetIcon('zoomin'), trans.stringOneLine('MenuItems', 64), trans.stringOneLine('MenuItems', 65), QtGui.QKeySequence.ZoomIn, False)
+ self.CreateAction('zoomin', self.HandleZoomIn, GetIcon('zoomin'), trans.stringOneLine('MenuItems', 64), trans.stringOneLine('MenuItems', 65), Qt.PinchGesture, True) #QGesture.PinchGesture
self.CreateAction('zoomactual', self.HandleZoomActual, GetIcon('zoomactual'), trans.stringOneLine('MenuItems', 66), trans.stringOneLine('MenuItems', 67), QtGui.QKeySequence('Ctrl+0'), False)
self.CreateAction('zoomout', self.HandleZoomOut, GetIcon('zoomout'), trans.stringOneLine('MenuItems', 68), trans.stringOneLine('MenuItems', 69), QtGui.QKeySequence.ZoomOut, False)
self.CreateAction('zoommin', self.HandleZoomMin, GetIcon('zoommin'), trans.stringOneLine('MenuItems', 70), trans.stringOneLine('MenuItems', 71), QtGui.QKeySequence('Ctrl+PgUp'), False)
@@ -17852,6 +17918,28 @@ def HandleZoomOut(self):
if zi >= 0:
self.ZoomTo(self.ZoomLevels[zi])
+#Gesture for Zoom
+#def event(self, event, level):
+#print('First Cond: ', event.type(), QtCore.QEvent.Gesture)
+#if event.type() == QtCore.QEvent.Gesture:
+#return self.myGestureZoomingFunction(event)
+#return self.handleZoomIn(self, event)
+
+#def myGestureZoomingFunction(self, event):
+ # Make your zoom code here
+ #print('Second Cond: ', event.gesture(Qt.PinchGesture))
+ #if event.gesture(Qt.PinchGesture):
+ #gesture = event.gesture(Qt.PinchGesture)
+ #ZoomTo = gesture.scaleFactor()
+ #print('Scale Factor: ', scale)
+ # scale = scale
+ #self.zoomLevel(zoomLevel, zoomLevel)
+
+
+ # accept the event
+ # event.accept()
+ #return True
+
@QtCore.pyqtSlot()
def HandleZoomActual(self):
@@ -17884,6 +17972,22 @@ def ZoomTo(self, z):
self.ZoomLevel = z
self.view.setTransform(tr)
self.levelOverview.mainWindowScale = z/100.0
+
+ '''def event(self, event, level):
+ print('First Cond: ', event.type(), QtCore.QEvent.Gesture)
+ if event.type() == QtCore.QEvent.Gesture:
+ return self.myGestureZoomingFunction(event)
+ return self.handleZoomIn(self, event)
+ if event.Gesture(Qt.PinchGesture):
+ gesture = event.gesture(Qt.PinchGesture)
+ ZoomTo = gesture.scaleFactor()
+ print('Scale Factor: ', scale)
+ self.zoomLevel(zoomLevel, zoomLevel)
+
+ # accept the event
+ event.accept()
+ return True'''
+
zi = self.ZoomLevels.index(z)
if UseRibbon:
@@ -19524,7 +19628,7 @@ def main():
setSetting('GamePath', path)
break
- # Check to see if we have anything saved
+ # check to see if we have anything saved
autofile = setting('AutoSaveFilePath')
if autofile is not None:
autofiledata = setting('AutoSaveFileData', 'x')
diff --git a/reggiedata/old splash stuff/ oldesplash.png b/reggiedata/old splash stuff/ oldesplash.png
new file mode 100644
index 0000000..3e2aa92
Binary files /dev/null and b/reggiedata/old splash stuff/ oldesplash.png differ
diff --git a/reggiedata/old splash stuff/splash_meter_l.png b/reggiedata/old splash stuff/splash_meter_l.png
new file mode 100644
index 0000000..fc7ff4b
Binary files /dev/null and b/reggiedata/old splash stuff/splash_meter_l.png differ
diff --git a/reggiedata/old splash stuff/splash_meter_m.png b/reggiedata/old splash stuff/splash_meter_m.png
new file mode 100644
index 0000000..392fca2
Binary files /dev/null and b/reggiedata/old splash stuff/splash_meter_m.png differ
diff --git a/reggiedata/old splash stuff/splash_meter_r.png b/reggiedata/old splash stuff/splash_meter_r.png
new file mode 100644
index 0000000..56801af
Binary files /dev/null and b/reggiedata/old splash stuff/splash_meter_r.png differ
diff --git a/reggiedata/splash.png b/reggiedata/splash.png
index 3e2aa92..0e52a89 100644
Binary files a/reggiedata/splash.png and b/reggiedata/splash.png differ
diff --git a/reggiedata/splash_config.txt b/reggiedata/splash_config.txt
index 81ddf01..1ba8823 100644
--- a/reggiedata/splash_config.txt
+++ b/reggiedata/splash_config.txt
@@ -1,25 +1,28 @@
Base_Image:splash.png
-Version_Font:Segoe UI Semibold
+Version_Font:Microsoft New Tai Lue
Version_Font_Bold:True
-Version_Font_Color:4C0000
-Version_Font_Size:14
-Version_Position:800,223
+Version_Font_Color:ff0000
+Version_Font_Size:30
+Version_Position:881,250
Version_Centered:True
-Loading_Font:Segoe UI Semibold
-Loading_Font_Bold:True
-Loading_Font_Color:4C0000
-Loading_Font_Size:26
-Loading_Position:315,252
+Version_Font_Weight:60
+Loading_Font:Segoe UI
+Loading_Font_Bold:False
+Loading_Font_Color:FF0000
+Loading_Font_Size:24
+Loading_Position:160,320
Loading_Centered:False
-Copyright_Font:Segoe UI Semibold
+Loading_Font_Weight:25
+Copyright_Font:Segoe UI
Copyright_Font_Bold:True
Copyright_Font_Color:FF0000
-Copyright_Font_Size:8
-Copyright_Position:325,310
+Copyright_Font_Size:14
+Copyright_Position:159,360
Copyright_Centered:False
-Copyright_Wrap_Limit:490
+Copyright_Wrap_Limit:700
+Copyright_Font_Weight:20
Meter_Left:splash_meter_l.png
Meter_Mid:splash_meter_m.png
Meter_Right:splash_meter_r.png
-Meter_Position:670,265
-Meter_Width:161
\ No newline at end of file
+Meter_Position:245,531
+Meter_Width:803
\ No newline at end of file
diff --git a/reggiedata/splash_meter_l.png b/reggiedata/splash_meter_l.png
index fc7ff4b..b7cc698 100644
Binary files a/reggiedata/splash_meter_l.png and b/reggiedata/splash_meter_l.png differ
diff --git a/reggiedata/splash_meter_m.png b/reggiedata/splash_meter_m.png
index 392fca2..b7cc698 100644
Binary files a/reggiedata/splash_meter_m.png and b/reggiedata/splash_meter_m.png differ
diff --git a/reggiedata/splash_meter_r.png b/reggiedata/splash_meter_r.png
index 56801af..b7cc698 100644
Binary files a/reggiedata/splash_meter_r.png and b/reggiedata/splash_meter_r.png differ
diff --git a/reggiedata/themes/Cavern/icolg/icon-area.png b/reggiedata/themes/Cavern/icolg/icon-area.png
new file mode 100755
index 0000000..947859e
Binary files /dev/null and b/reggiedata/themes/Cavern/icolg/icon-area.png differ
diff --git a/reggiedata/themes/Cavern/icosm/icon-events.png b/reggiedata/themes/Cavern/icosm/icon-events.png
new file mode 100755
index 0000000..59973d0
Binary files /dev/null and b/reggiedata/themes/Cavern/icosm/icon-events.png differ
diff --git a/reggiedata/themes/Cavern/levelview.xml b/reggiedata/themes/Cavern/levelview.xml
new file mode 100755
index 0000000..16bf067
--- /dev/null
+++ b/reggiedata/themes/Cavern/levelview.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/reggiedata/themes/Cavern/main.xml b/reggiedata/themes/Cavern/main.xml
new file mode 100755
index 0000000..c1f7443
--- /dev/null
+++ b/reggiedata/themes/Cavern/main.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/reggiedata/themes/Cavern/ui.css b/reggiedata/themes/Cavern/ui.css
new file mode 100755
index 0000000..659511a
--- /dev/null
+++ b/reggiedata/themes/Cavern/ui.css
@@ -0,0 +1,3 @@
+QCheckBox {
+ color: red;
+ }
\ No newline at end of file
diff --git a/reggiedata/themes/Dark.rt b/reggiedata/themes/Dark.rt
new file mode 100644
index 0000000..462279b
Binary files /dev/null and b/reggiedata/themes/Dark.rt differ
diff --git a/reggiedata/themes/RVLutionRed.rt b/reggiedata/themes/RVLutionRed.rt
new file mode 100644
index 0000000..ef4257a
Binary files /dev/null and b/reggiedata/themes/RVLutionRed.rt differ
diff --git a/spritelib.py b/spritelib.py
index b2b041b..7a40ac0 100644
--- a/spritelib.py
+++ b/spritelib.py
@@ -80,7 +80,7 @@ def GetImg(imgname, image=False):
imgname = str(imgname)
# Try to find the best path
- path = 'reggiedata/sprites/' + imgname
+ path = '../../../reggiedata/sprites/' + imgname
for folder in reversed(SpritesFolders): # find the most recent copy
tryPath = folder + '/' + imgname
@@ -121,7 +121,7 @@ def LoadBasicSuite():
ImageCache['Blocks'] = Blocks
# Load the overrides
- Overrides = QtGui.QPixmap('reggiedata/overrides.png')
+ Overrides = QtGui.QPixmap('../../../reggiedata/overrides.png')
Blocks = []
x = Overrides.width() // 24
y = Overrides.height() // 24