├── .gitignore ├── DSFLib.py ├── MacOS ├── 2.5 │ ├── OpenGL │ │ ├── GL │ │ │ ├── ARB │ │ │ │ ├── __init__.pyo │ │ │ │ └── texture_compression.so │ │ │ ├── EXT │ │ │ │ ├── __init__.pyo │ │ │ │ ├── bgra.pyo │ │ │ │ └── texture_compression_s3tc.pyo │ │ │ ├── GL__init__.pyo │ │ │ ├── GL__init___.so │ │ │ └── __init__.pyo │ │ ├── GLU │ │ │ ├── GLU__init__.pyo │ │ │ ├── GLU__init___.so │ │ │ └── __init__.pyo │ │ ├── __init__.pyo │ │ └── version │ ├── PIL │ │ ├── BmpImagePlugin.pyo │ │ ├── Image.pyo │ │ ├── ImageFile.pyo │ │ ├── ImageMode.pyo │ │ ├── ImagePalette.pyo │ │ ├── JpegImagePlugin.pyo │ │ ├── PngImagePlugin.pyo │ │ ├── __init__.pyo │ │ └── _imaging.so │ ├── py7zlib.pyo │ ├── pylzma.pyo │ └── pylzma.so ├── 2.7 │ ├── OpenGL │ │ ├── GL │ │ │ ├── ARB │ │ │ │ ├── __init__.pyo │ │ │ │ └── texture_compression.so │ │ │ ├── EXT │ │ │ │ ├── __init__.pyo │ │ │ │ ├── bgra.pyo │ │ │ │ └── texture_compression_s3tc.pyo │ │ │ ├── GL__init__.pyo │ │ │ ├── GL__init___.so │ │ │ └── __init__.pyo │ │ ├── GLU │ │ │ ├── GLU__init__.pyo │ │ │ ├── GLU__init___.so │ │ │ └── __init__.pyo │ │ ├── __init__.pyo │ │ └── version │ ├── PIL │ │ ├── BmpImagePlugin.pyo │ │ ├── Image.pyo │ │ ├── ImageColor.pyo │ │ ├── ImageFile.pyo │ │ ├── ImageMode.pyo │ │ ├── ImagePalette.pyo │ │ ├── JpegImagePlugin.pyo │ │ ├── PngImagePlugin.pyo │ │ ├── __init__.pyo │ │ └── _imaging.so │ ├── py7zlib.pyo │ ├── pylzma.pyo │ └── pylzma.so ├── DSFTool ├── Info.plist ├── OverlayEditor ├── OverlayEditor.icns ├── OverlayEditor.png ├── delete.png ├── fac.icns ├── for.icns ├── help.png ├── import.png ├── inspector.png ├── new.png ├── obj.icns ├── open.png ├── pol.icns ├── prefs.png ├── reload.png ├── screenshot.jpg └── undo.png ├── MessageBox.py ├── OverlayEditor.html ├── OverlayEditor.pspimage ├── OverlayEditor.py ├── Resources ├── 800library.txt ├── OverlayEditor.png ├── Sea01.png ├── add.png ├── airport0_000.png ├── background.png ├── background.pspimage ├── bad.png ├── blank.png ├── default.obj ├── delete.png ├── exc.png ├── fac.png ├── facs.png ├── fallback.png ├── for.png ├── fors.png ├── goto.png ├── goto.pspimage ├── help.png ├── import.png ├── import.pspimage ├── inspector.png ├── lin.png ├── lins.png ├── net.png ├── new.png ├── obj.png ├── objs.png ├── open.png ├── ortho.png ├── orthos.png ├── padlock.png ├── pol.png ├── pols.png ├── prefs.png ├── previews │ ├── com_convertrow.jpg │ ├── com_convertrow.pspimage │ ├── com_lowoffice.jpg │ ├── com_medoffice.jpg │ ├── com_rowshops.jpg │ ├── com_skyscraper.jpg │ ├── ind_storage.jpg │ ├── ins_cityschool.jpg │ ├── ins_university.jpg │ ├── lib_cars_car.jpg │ ├── lib_cars_car.pspimage │ ├── lib_cars_car_or_truck.jpg │ ├── lib_cars_car_or_truck.pspimage │ ├── lib_dynamic_balloon.jpg │ ├── lib_dynamic_balloon.pspimage │ ├── lib_ships_Carrier.jpg │ ├── lib_ships_Frigate.jpg │ ├── lib_ships_OilPlatform.jpg │ ├── lib_ships_OilRig.jpg │ ├── lib_ships_SailBoat.jpg │ ├── res_hotel.jpg │ ├── res_lowapt.jpg │ ├── res_midapt.jpg │ ├── res_rowhouses.jpg │ └── res_singlehouse.jpg ├── reload.png ├── save.png ├── screenshot.jpg ├── surfaces.png ├── surfaces.pspimage ├── undo.png ├── undo.pspimage ├── unknown.png ├── unknowns.png ├── windsock.obj └── windsock.png ├── clutter.py ├── clutterdef.py ├── delPrefs.command ├── dist.cmd ├── doc ├── Catalyst 811 Log.txt ├── Catalyst 910 Log.txt ├── DDS File Reference.URL ├── Fast_Texture_Transfers.pdf ├── Gillians Mac.Log.txt ├── Intel950 10.4.8 Log.txt ├── Lets_Get_Small-2005.pdf ├── iMac ATI HD 2600.Log.txt ├── nv6800 10.4.2 Log.txt └── versions.txt ├── draw.py ├── files.py ├── fixed8x13.py ├── linux ├── DSFTool ├── control ├── overlayeditor ├── overlayeditor.desktop ├── overlayeditor.spec └── postinst ├── lock.py ├── palette.py ├── postprof.py ├── prefs.py ├── setup ├── todo.txt ├── version.py └── win32 ├── DSFTool.exe ├── OverlayEditor.ico ├── OverlayEditor.nsi ├── installer.ico ├── installer.pspimage └── setup.py /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | build 3 | 4 | *.app 5 | *.exe 6 | *.bak 7 | *.pyc 8 | *.pyo 9 | *.zip 10 | *.rpm 11 | *.deb 12 | 13 | .DS_Store 14 | Thumbs.db 15 | -------------------------------------------------------------------------------- /DSFLib.py: -------------------------------------------------------------------------------- 1 | from math import cos, floor, pi, radians 2 | from os import mkdir, popen3, rename, unlink, SEEK_CUR, SEEK_END 3 | from os.path import basename, curdir, dirname, exists, expanduser, isdir, join, normpath, pardir, sep 4 | from struct import unpack 5 | from sys import platform, maxint 6 | from tempfile import gettempdir 7 | import types 8 | import time 9 | import py7zlib 10 | from cStringIO import StringIO 11 | if __debug__: 12 | from traceback import print_exc 13 | 14 | from clutter import PolygonFactory, Object, Polygon, Draped, Exclude, Network, minres, minhdg 15 | from version import appname, appversion 16 | 17 | onedeg=1852*60 # 1 degree of longitude at equator (60nm) [m] 18 | 19 | if platform=='win32': 20 | dsftool=join(curdir,'win32','DSFTool.exe') 21 | elif platform.startswith('linux'): 22 | dsftool=join(curdir,'linux','DSFTool') 23 | else: # Mac 24 | dsftool=join(curdir,'MacOS','DSFTool') 25 | 26 | 27 | # Takes a DSF path name. 28 | # Returns (lat, lon, placements, roads, mesh), where: 29 | # placements = [Clutter] 30 | # roads= [(type, [lon, lat, elv, ...])] 31 | # mesh = [(texture name, flags, [point], [st])], where 32 | # flags=patch flags: 1=hard, 2=overlay 33 | # point = [x, y, z] 34 | # st = [s, t] 35 | # Exceptions: 36 | # IOError, IndexError 37 | # 38 | # If terrains is defined, assume loading terrain and discard non-mesh data 39 | # If terrains not defined, assume looking for an overlay DSF 40 | # 41 | def readDSF(path, wantoverlay, wantnetwork, terrains={}): 42 | assert wantoverlay or terrains 43 | baddsf=(0, "Invalid DSF file", path) 44 | 45 | h=file(path, 'rb') 46 | sig=h.read(8) 47 | if sig.startswith('7z\xBC\xAF\x27\x1C'): # X-Plane 10 compressed 48 | if __debug__: clock=time.clock() 49 | h.seek(0) 50 | data=py7zlib.Archive7z(h).getmember(basename(path)).read() 51 | h.close() 52 | h=StringIO(data) 53 | sig=h.read(8) 54 | if __debug__: print "%6.3f time in decompression" % (time.clock()-clock) 55 | if sig!='XPLNEDSF' or unpack('0 and len(windings[0])>=2: 407 | placements.append(PolygonFactory(polygons[idx], param, windings)) 408 | 409 | elif c==15: # Nested Polygon Range (DSF2Text uses this one too) 410 | (param,n)=unpack('=elevwidth: 561 | v2=v1 # east boundary 562 | if z>=elevheight: 563 | v4=v3=v2=v1 # north east corner 564 | else: 565 | v4=v3=elev[z+1][x] 566 | elif z>=elevheight: 567 | v3=v1 # north boundary 568 | v4=v2=elev[z][x+1] 569 | else: 570 | v2=elev[z ][x+1] 571 | v3=elev[z+1][x ] 572 | v4=elev[z+1][x+1] 573 | w1=(1.0 - x_fract) * (1.0 - z_fract) 574 | w2=( x_fract) * (1.0 - z_fract) 575 | w3=(1.0 - x_fract) * ( z_fract) 576 | w4=( x_fract) * ( z_fract) 577 | return (v1 * w1 + v2 * w2 + v3 * w3 + v4 * w4) / (w1 + w2 + w3 + w4) 578 | 579 | # Get terrain info 580 | if ter in tercache: 581 | (texture, texflags, angle, xscale, zscale)=tercache[ter] 582 | else: 583 | texture=None 584 | texflags=8 # wrap 585 | angle=0 586 | xscale=zscale=0 587 | try: 588 | if ter in terrains: # Library terrain 589 | phys=terrains[ter] 590 | else: # Package-specific terrain 591 | phys=normpath(join(dirname(path), pardir, pardir, ter)) 592 | h=file(phys, 'rU') 593 | if not (h.readline().strip() in ['I','A'] and 594 | h.readline().strip()=='800' and 595 | h.readline().strip()=='TERRAIN'): 596 | raise IOError 597 | for line in h: 598 | line=line.strip() 599 | c=line.split() 600 | if not c: continue 601 | if c[0] in ['BASE_TEX', 'BASE_TEX_NOWRAP']: 602 | texflags=(c[0]=='BASE_TEX' and 8) 603 | texture=line[len(c[0]):].strip() 604 | texture=texture.replace(':', sep) 605 | texture=texture.replace('/', sep) 606 | texture=normpath(join(dirname(phys), texture)) 607 | elif c[0]=='PROJECTED': 608 | xscale=1/float(c[1]) 609 | zscale=1/float(c[2]) 610 | elif c[0]=='PROJECT_ANGLE': 611 | if float(c[1])==0 and float(c[2])==1 and float(c[3])==0: 612 | # no idea what rotation about other axes means 613 | angle=int(float(c[4])) 614 | h.close() 615 | except: 616 | if __debug__: 617 | print 'Failed to load terrain "%s"' % ter 618 | print_exc() 619 | tercache[ter]=(texture, texflags, angle, xscale, zscale) 620 | 621 | # Make mesh 622 | centrelat=south+0.5 623 | centrelon=west+0.5 624 | v=[] 625 | t=[] 626 | if flags&1 and (len(patch[0])<7 or xscale): # hard and no st coords 627 | for p in patch: 628 | x=(p[0]-centrelon)*onedeg*cos(radians(p[1])) 629 | z=(centrelat-p[1])*onedeg 630 | if p[2]!=-32768: 631 | y=p[2] 632 | else: # elevation from raster data 633 | y=elevation(p[1],p[0],south,west,elev,elevwidth,elevheight) 634 | v.append([x, y, z]) 635 | if not angle: 636 | t.append([x*xscale, -z*zscale]) 637 | elif angle==90: 638 | t.append([z*zscale, x*xscale]) 639 | elif angle==180: 640 | t.append([-x*xscale, z*zscale]) 641 | elif angle==270: 642 | t.append([-z*zscale, -x*xscale]) 643 | else: # not square - ignore rotation 644 | t.append([x*xscale, -z*zscale]) 645 | elif not (len(patch[0])<7 or xscale): # st coords but not projected 646 | for p in patch: 647 | if p[2]!=-32768: 648 | y=p[2] 649 | else: # elevation from raster data 650 | y=elevation(p[1],p[0],south,west,elev,elevwidth,elevheight) 651 | v.append([(p[0]-centrelon)*onedeg*cos(radians(p[1])), 652 | y, (centrelat-p[1])*onedeg]) 653 | t.append([p[5],p[6]]) 654 | else: 655 | # skip not hard and no st coords - complicated blending required 656 | return None 657 | return (texture,flags|texflags,v,t) 658 | 659 | 660 | def writeDSF(dsfdir, key, placements, netfile): 661 | (south,west)=key 662 | tiledir=join(dsfdir, "%+02d0%+03d0" % (int(south/10), int(west/10))) 663 | if not isdir(tiledir): mkdir(tiledir) 664 | tilename=join(tiledir, "%+03d%+04d" % (south,west)) 665 | if exists(tilename+'.dsf'): 666 | if exists(tilename+'.dsf.bak'): unlink(tilename+'.dsf.bak') 667 | rename(tilename+'.dsf', tilename+'.dsf.bak') 668 | if exists(tilename+'.DSF'): 669 | if exists(tilename+'.DSF.BAK'): unlink(tilename+'.DSF.BAK') 670 | rename(tilename+'.DSF', tilename+'.DSF.BAK') 671 | if not (placements): return 672 | 673 | tmp=join(gettempdir(), "%+03d%+04d.txt" % (south,west)) 674 | h=file(tmp, 'wt') 675 | h.write('I\n800\nDSF2TEXT\n\n') 676 | h.write('PROPERTY\tsim/planet\tearth\n') 677 | h.write('PROPERTY\tsim/overlay\t1\n') 678 | h.write('PROPERTY\tsim/require_object\t1/0\n') 679 | h.write('PROPERTY\tsim/require_facade\t1/0\n') 680 | h.write('PROPERTY\tsim/creation_agent\t%s %4.2f\n' % (appname, appversion)) 681 | 682 | objects=[] 683 | polygons=[] 684 | for placement in placements: 685 | if isinstance(placement,Object): 686 | objects.append(placement) 687 | elif isinstance(placement,Exclude): 688 | for k in Exclude.NAMES: 689 | if Exclude.NAMES[k]==placement.name: 690 | minlat=minlon=maxint 691 | maxlat=maxlon=-maxint 692 | for n in placement.nodes[0]: 693 | minlon=min(minlon,n[0]) 694 | maxlon=max(maxlon,n[0]) 695 | minlat=min(minlat,n[1]) 696 | maxlat=max(maxlat,n[1]) 697 | h.write('PROPERTY\t%s\t%.6f/%.6f/%.6f/%.6f\n' % ( 698 | k, minlon, minlat, maxlon, maxlat)) 699 | break 700 | else: 701 | polygons.append(placement) 702 | 703 | # must be final properties 704 | h.write('PROPERTY\tsim/west\t%d\n' % west) 705 | h.write('PROPERTY\tsim/east\t%d\n' % (west+1)) 706 | h.write('PROPERTY\tsim/north\t%d\n' % (south+1)) 707 | h.write('PROPERTY\tsim/south\t%d\n' % south) 708 | h.write('\n') 709 | 710 | objdefs=[] 711 | for obj in objects: 712 | if not obj.name in objdefs: 713 | objdefs.append(obj.name) 714 | h.write('OBJECT_DEF\t%s\n' % obj.name) 715 | if objdefs: h.write('\n') 716 | 717 | polydefs=[] 718 | for poly in polygons: 719 | if isinstance(poly, Network): continue 720 | if not poly.name in polydefs: 721 | polydefs.append(poly.name) 722 | h.write('POLYGON_DEF\t%s\n' % poly.name) 723 | if polydefs: h.write('\n') 724 | 725 | junctions={} 726 | for poly in polygons: 727 | if not isinstance(poly, Network): continue 728 | if not junctions: h.write('NETWORK_DEF\t%s\n\n' % netfile) 729 | for node in [poly.nodes[0][0], poly.nodes[0][-1]]: 730 | junctions[(node[0], node[1], node[2])]=True 731 | jnum=1 732 | for j in junctions.keys(): 733 | junctions[j]=jnum 734 | jnum+=1 735 | 736 | for obj in objects: 737 | # DSFTool rounds down, so round up here first 738 | h.write('OBJECT\t%d\t%12.7f%13.7f%6.1f\n' % ( 739 | objdefs.index(obj.name), min(west+1, obj.lon+minres/2), min(south+1, obj.lat+minres/2), round(obj.hdg,1)+minhdg/2)) 740 | if objects: h.write('\n') 741 | 742 | for poly in polygons: 743 | if isinstance(poly, Network): continue 744 | h.write('BEGIN_POLYGON\t%d\t%d %d\n' % ( 745 | polydefs.index(poly.name), poly.param, len(poly.nodes[0][0]))) 746 | for w in poly.nodes: 747 | h.write('BEGIN_WINDING\n') 748 | for p in w: 749 | # DSFTool rounds down, so round up here first 750 | h.write('POLYGON_POINT\t%12.7f%13.7f' % (min(west+1, p[0]+minres/2), min(south+1, p[1]+minres/2))) 751 | if len(p)==4 and poly.param!=65535: # don't adjust UV coords 752 | h.write('%13.7f%13.7f' % (min(west+1, p[2]+minres/2), min(south+1, p[3]+minres/2))) 753 | elif len(p)==5: 754 | h.write('%13.7f%13.7f%13.7f' % (p[2], min(west+1, p[3]+minres/2), min(south+1, p[4]+minres/2))) 755 | elif len(p)==8: 756 | h.write('%13.7f%13.7f%13.7f%13.7f%13.7f%13.7f' % (min(west+1, p[2]+minres/2), min(south+1, p[3]+minres/2), p[4], p[5], p[6], p[7])) 757 | else: 758 | for n in range(3,len(p)): 759 | h.write('%13.7f' % p[n]) 760 | h.write('\n') 761 | h.write('END_WINDING\n') 762 | h.write('END_POLYGON\n') 763 | if polydefs: h.write('\n') 764 | 765 | for poly in polygons: 766 | if not isinstance(poly, Network): continue 767 | p=poly.nodes[0][0] 768 | h.write('BEGIN_SEGMENT\t%d %d\t%d\t%13.8f %13.8f %11.6f\n' % ( 769 | 0, poly.index, junctions[(p[0], p[1], p[2])], 770 | p[0], p[1], p[2])) 771 | for p in poly.nodes[0][1:-1]: 772 | h.write('SHAPE_POINT\t\t\t%13.8f %13.8f %11.6f\n' % ( 773 | p[0], p[1], p[2])) 774 | p=poly.nodes[0][-1] 775 | h.write('END_SEGMENT\t\t%d\t%13.8f %13.8f %11.6f\n' % ( 776 | junctions[(p[0], p[1], p[2])], 777 | p[0], p[1], p[2])) 778 | if junctions: h.write('\n') 779 | 780 | h.close() 781 | if platform=='win32': 782 | # Bug - how to suppress environment variable expansion? 783 | cmds='%s -text2dsf "%s" "%s.dsf"' % (dsftool, tmp, tilename) #.replace('%','%%')) 784 | if type(cmds)==types.UnicodeType: 785 | # commands must be MBCS encoded 786 | cmds=cmds.encode("mbcs") 787 | else: 788 | # See "QUOTING" in bash(1) 789 | cmds='%s -text2dsf "%s" "%s.dsf"' % (dsftool, tmp, tilename.replace('\\','\\\\').replace('"','\\"').replace("$", "\\$").replace("`", "\\`")) 790 | (i,o,e)=popen3(cmds) 791 | i.close() 792 | err=o.read() 793 | err+=e.read() 794 | o.close() 795 | e.close() 796 | if not __debug__: unlink(tmp) 797 | if not exists(tilename+'.dsf'): 798 | if exists(tilename+'.dsf.bak'): 799 | rename(tilename+'.dsf.bak', tilename+'.dsf') 800 | elif exists(tilename+'.DSF.BAK'): 801 | rename(tilename+'.DSF.BAK', tilename+'.DSF') 802 | if __debug__: print err 803 | err=err.strip().split('\n') 804 | if len(err)>1 and err[-1].startswith('('): 805 | err=err[-2].strip() # DSF errors appear on penultimate line 806 | else: 807 | err=err[0].strip() 808 | raise IOError, (0, err) 809 | -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/GL/ARB/__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/OpenGL/GL/ARB/__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/GL/ARB/texture_compression.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/OpenGL/GL/ARB/texture_compression.so -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/GL/EXT/__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/OpenGL/GL/EXT/__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/GL/EXT/bgra.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/OpenGL/GL/EXT/bgra.pyo -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/GL/EXT/texture_compression_s3tc.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/OpenGL/GL/EXT/texture_compression_s3tc.pyo -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/GL/GL__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/OpenGL/GL/GL__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/GL/GL__init___.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/OpenGL/GL/GL__init___.so -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/GL/__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/OpenGL/GL/__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/GLU/GLU__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/OpenGL/GLU/GLU__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/GLU/GLU__init___.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/OpenGL/GLU/GLU__init___.so -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/GLU/__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/OpenGL/GLU/__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/OpenGL/__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.5/OpenGL/version: -------------------------------------------------------------------------------- 1 | 2.0.1.09 2 | -------------------------------------------------------------------------------- /MacOS/2.5/PIL/BmpImagePlugin.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/PIL/BmpImagePlugin.pyo -------------------------------------------------------------------------------- /MacOS/2.5/PIL/Image.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/PIL/Image.pyo -------------------------------------------------------------------------------- /MacOS/2.5/PIL/ImageFile.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/PIL/ImageFile.pyo -------------------------------------------------------------------------------- /MacOS/2.5/PIL/ImageMode.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/PIL/ImageMode.pyo -------------------------------------------------------------------------------- /MacOS/2.5/PIL/ImagePalette.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/PIL/ImagePalette.pyo -------------------------------------------------------------------------------- /MacOS/2.5/PIL/JpegImagePlugin.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/PIL/JpegImagePlugin.pyo -------------------------------------------------------------------------------- /MacOS/2.5/PIL/PngImagePlugin.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/PIL/PngImagePlugin.pyo -------------------------------------------------------------------------------- /MacOS/2.5/PIL/__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/PIL/__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.5/PIL/_imaging.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/PIL/_imaging.so -------------------------------------------------------------------------------- /MacOS/2.5/py7zlib.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/py7zlib.pyo -------------------------------------------------------------------------------- /MacOS/2.5/pylzma.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/pylzma.pyo -------------------------------------------------------------------------------- /MacOS/2.5/pylzma.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.5/pylzma.so -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/GL/ARB/__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/OpenGL/GL/ARB/__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/GL/ARB/texture_compression.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/OpenGL/GL/ARB/texture_compression.so -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/GL/EXT/__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/OpenGL/GL/EXT/__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/GL/EXT/bgra.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/OpenGL/GL/EXT/bgra.pyo -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/GL/EXT/texture_compression_s3tc.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/OpenGL/GL/EXT/texture_compression_s3tc.pyo -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/GL/GL__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/OpenGL/GL/GL__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/GL/GL__init___.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/OpenGL/GL/GL__init___.so -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/GL/__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/OpenGL/GL/__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/GLU/GLU__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/OpenGL/GLU/GLU__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/GLU/GLU__init___.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/OpenGL/GLU/GLU__init___.so -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/GLU/__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/OpenGL/GLU/__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/OpenGL/__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.7/OpenGL/version: -------------------------------------------------------------------------------- 1 | 2.0.1.09 2 | -------------------------------------------------------------------------------- /MacOS/2.7/PIL/BmpImagePlugin.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/PIL/BmpImagePlugin.pyo -------------------------------------------------------------------------------- /MacOS/2.7/PIL/Image.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/PIL/Image.pyo -------------------------------------------------------------------------------- /MacOS/2.7/PIL/ImageColor.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/PIL/ImageColor.pyo -------------------------------------------------------------------------------- /MacOS/2.7/PIL/ImageFile.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/PIL/ImageFile.pyo -------------------------------------------------------------------------------- /MacOS/2.7/PIL/ImageMode.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/PIL/ImageMode.pyo -------------------------------------------------------------------------------- /MacOS/2.7/PIL/ImagePalette.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/PIL/ImagePalette.pyo -------------------------------------------------------------------------------- /MacOS/2.7/PIL/JpegImagePlugin.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/PIL/JpegImagePlugin.pyo -------------------------------------------------------------------------------- /MacOS/2.7/PIL/PngImagePlugin.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/PIL/PngImagePlugin.pyo -------------------------------------------------------------------------------- /MacOS/2.7/PIL/__init__.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/PIL/__init__.pyo -------------------------------------------------------------------------------- /MacOS/2.7/PIL/_imaging.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/PIL/_imaging.so -------------------------------------------------------------------------------- /MacOS/2.7/py7zlib.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/py7zlib.pyo -------------------------------------------------------------------------------- /MacOS/2.7/pylzma.pyo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/pylzma.pyo -------------------------------------------------------------------------------- /MacOS/2.7/pylzma.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/2.7/pylzma.so -------------------------------------------------------------------------------- /MacOS/DSFTool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/MacOS/DSFTool -------------------------------------------------------------------------------- /MacOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | OverlayEditor 9 | CFBundleIconFile 10 | OverlayEditor.icns 11 | CFBundleIdentifier 12 | Marginal.OverlayEditor 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | OverlayEditor 17 | CFBundlePackageType 18 | APPL 19 | CFBundleSignature 20 | ???? 21 | CFBundleShortVersionString 22 | appversion 23 | CFBundleGetInfoString 24 | OverlayEditor appversion, © 2007-2012 Jonathan Harris 25 | CFBundleDocumentTypes 26 | 27 | 28 | CFBundleTypeExtensions 29 | 30 | fac 31 | 32 | CFBundleTypeIconFile 33 | fac.icns 34 | CFBundleTypeName 35 | X-Plane Facade 36 | CFBundleTypeRole 37 | None 38 | 39 | 40 | CFBundleTypeExtensions 41 | 42 | for 43 | 44 | CFBundleTypeIconFile 45 | for.icns 46 | CFBundleTypeName 47 | X-Plane Forest 48 | CFBundleTypeRole 49 | None 50 | 51 | 52 | CFBundleTypeExtensions 53 | 54 | obj 55 | 56 | CFBundleTypeIconFile 57 | obj.icns 58 | CFBundleTypeName 59 | X-Plane Scenery Object 60 | CFBundleTypeRole 61 | None 62 | 63 | 64 | CFBundleTypeExtensions 65 | 66 | pol 67 | 68 | CFBundleTypeIconFile 69 | pol.icns 70 | CFBundleTypeName 71 | X-Plane Draped Polygon 72 | CFBundleTypeRole 73 | None 74 | 75 | 76 | LSMinimumSystemVersion 77 | 10.5 78 | 79 | 80 | -------------------------------------------------------------------------------- /MacOS/OverlayEditor: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Actually executed by user's default shell (ignoring previous line), so don't do anything fancy 3 | 4 | # Force default Python so picks up system wxPython 5 | exec /bin/bash -s<width: 49 | if startofline!=len(message): 50 | message+='\n' 51 | startofline=len(message) 52 | else: 53 | #width=x # Grow dialog to fit long word 54 | pass 55 | message+=word+' ' 56 | if '\n' in word: 57 | startofline=len(message)-len(word)+len(firstword) 58 | textctl.SetLabel(message) 59 | 60 | def OnButton(event): 61 | id=event.GetId() 62 | if id==wx.ID_OK: 63 | event.GetEventObject().GetGrandParent().EndModal(wx.OK) 64 | elif id==wx.ID_SAVE: 65 | event.GetEventObject().GetGrandParent().EndModal(wx.YES) 66 | elif id==wx.ID_NO: 67 | event.GetEventObject().GetGrandParent().EndModal(wx.NO) 68 | else: 69 | event.GetEventObject().GetGrandParent().EndModal(wx.CANCEL) 70 | 71 | # Spacings from http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGLayout/chapter_19_section_2.html 72 | 73 | if platform!='darwin': 74 | return wx.MessageBox(caption+'\n\n'+message, appname, style, parent) 75 | 76 | assert (style&~wx.ICON_MASK in [wx.OK,wx.CANCEL,wx.YES_NO,wx.CANCEL|wx.YES_NO]) 77 | txtwidth=320 78 | 79 | dlg=wx.Dialog(parent, style=wx.CAPTION) 80 | panel0 = wx.Panel(dlg) 81 | 82 | bitmap=wx.StaticBitmap(panel0, -1, 83 | wx.Bitmap(join('Resources','%s.png' % appname), 84 | wx.BITMAP_TYPE_PNG)) 85 | 86 | cap=wx.StaticText(panel0, -1, caption) 87 | font=cap.GetFont() 88 | font.SetWeight(wx.FONTWEIGHT_BOLD) 89 | cap.SetFont(font) 90 | WrapText(cap, txtwidth) 91 | 92 | text=wx.StaticText(panel0, -1, message) 93 | text.SetWindowVariant(wx.WINDOW_VARIANT_SMALL) 94 | WrapText(text, txtwidth) 95 | 96 | if style&~wx.ICON_MASK in [wx.OK,wx.CANCEL]: 97 | button=wx.Button(panel0, wx.ID_OK) 98 | else: 99 | button=wx.Button(panel0, wx.ID_SAVE) 100 | button.SetDefault() 101 | 102 | grid=wx.GridBagSizer() # 7 rows, 8 cols 103 | grid.SetEmptyCellSize((0,0)) 104 | 105 | grid.Add([24,15], (0,0)) 106 | grid.Add([16,15], (0,2)) 107 | grid.Add([txtwidth,15],(0,3), (1,4)) # Minimum size 108 | 109 | grid.Add(bitmap, (1,1), (4,1), flag=wx.ALIGN_TOP|wx.ALIGN_LEFT) 110 | grid.Add(cap, (1,3), (1,4), flag=wx.ALIGN_TOP|wx.ALIGN_LEFT) 111 | 112 | #grid.Add([0,8], (2,3)) 113 | grid.Add(text, (3,3), (1,4), flag=wx.ALIGN_TOP|wx.ALIGN_LEFT) 114 | grid.Add([24,15], (4,0)) 115 | if (style&wx.YES_NO): 116 | grid.Add(wx.Button(panel0, wx.ID_NO), (5,3), flag=wx.ALIGN_LEFT) 117 | if (style&wx.YES_NO) and (style&wx.CANCEL): 118 | grid.Add(wx.Button(panel0, wx.ID_CANCEL), (5,5), flag=wx.ALIGN_RIGHT|wx.RIGHT, border=4) 119 | grid.Add(button, (5,6), flag=wx.ALIGN_RIGHT) 120 | grid.Add([24,20], (6,7)) 121 | 122 | panel0.SetSizerAndFit(grid) 123 | 124 | dlg.SetClientSize(panel0.GetMinSize()) 125 | if wx.VERSION>=(2,9): # crashes on wxMac 2.8 (and earlier?) when display asleep 126 | dlg.CenterOnParent() # see http://trac.wxwidgets.org/ticket/11557 127 | wx.EVT_BUTTON(dlg, wx.ID_OK, OnButton) 128 | wx.EVT_BUTTON(dlg, wx.ID_SAVE, OnButton) 129 | wx.EVT_BUTTON(dlg, wx.ID_NO, OnButton) 130 | wx.EVT_BUTTON(dlg, wx.ID_CANCEL, OnButton) 131 | retval=dlg.ShowModal() 132 | dlg.Destroy() 133 | 134 | return retval 135 | 136 | def AboutBox(parent=None): 137 | dlg=wx.Dialog(parent, style=wx.CLOSE_BOX) 138 | panel0 = wx.Panel(dlg) 139 | 140 | bitmap=wx.StaticBitmap(panel0, -1, 141 | wx.Bitmap(join('Resources','%s.png' % appname), 142 | wx.BITMAP_TYPE_PNG)) 143 | 144 | name=wx.StaticText(panel0, -1, appname) 145 | name.SetWindowVariant(wx.WINDOW_VARIANT_LARGE) 146 | font=name.GetFont() 147 | font.SetWeight(wx.FONTWEIGHT_BOLD) 148 | name.SetFont(font) 149 | 150 | ver=wx.StaticText(panel0, -1, "Version %4.2f" % appversion) 151 | ver.SetWindowVariant(wx.WINDOW_VARIANT_SMALL) 152 | 153 | blurb=wx.StaticText(panel0, -1, "Copyright 2007-2012 Jonathan Harris") 154 | blurb.SetWindowVariant(wx.WINDOW_VARIANT_SMALL) 155 | 156 | box=wx.BoxSizer(wx.VERTICAL) 157 | 158 | box.Add([0,10]) 159 | box.Add(bitmap, flag=wx.ALIGN_CENTER) 160 | box.Add([0,12]) 161 | box.Add(name, flag=wx.ALIGN_CENTER) 162 | box.Add([0,10]) 163 | box.Add(ver, flag=wx.ALIGN_CENTER) 164 | box.Add([0,8]) 165 | box.Add(blurb, flag=wx.ALIGN_CENTER) 166 | 167 | panel0.SetSizerAndFit(box) 168 | dlg.SetClientSize([284,178]) 169 | dlg.CenterOnParent() 170 | dlg.ShowModal() 171 | dlg.Destroy() 172 | -------------------------------------------------------------------------------- /OverlayEditor.pspimage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/OverlayEditor.pspimage -------------------------------------------------------------------------------- /Resources/800library.txt: -------------------------------------------------------------------------------- 1 | A 2 | 800 3 | LIBRARY 4 | 5 | # The useful subset of the generic '800 objects' library 6 | 7 | EXPORT com/convertrow.obj buildings:B1_a_60x10.obj 8 | EXPORT com/largehmall.obj xp7:comp_lm1_360x290.obj 9 | EXPORT com/largestrip.obj xp7:comp_ls1_90x80.obj 10 | EXPORT com/smallmall.obj xp7:comp_sm1_220x100.obj 11 | EXPORT ind/truckstop.obj xp7:gas station chevron_new.obj 12 | EXPORT ins/church.obj xp7:church_new.obj 13 | EXPORT ins/medicalcomplex.obj skyscrapers:wide1.obj 14 | EXPORT res/singlehouse.obj xp7:house small stucco_new.obj 15 | EXPORT trans/truckstop.obj xp7:gas station texaco_new.obj 16 | 17 | EXPORT com/lowoffice.fac skyscrapers:sky2_1.fac 18 | EXPORT com/medoffice.fac skyscrapers:sky1_3.fac 19 | EXPORT com/rowshops.fac buildings:B1_d.fac 20 | EXPORT com/skyscraper.fac skyscrapers:sky1_1.fac 21 | EXPORT ind/storage.fac buildings:B1_a.fac 22 | EXPORT ins/cityschool.fac skyscrapers:sky2_4.fac 23 | EXPORT ins/university.fac skyscrapers:sky1_5.fac 24 | EXPORT res/hotel.fac skyscrapers:sky1_2.fac 25 | EXPORT res/lowapt.fac buildings:B1_b.fac 26 | EXPORT res/midapt.fac skyscrapers:sky2a_1.fac 27 | EXPORT res/rowhouses.fac buildings:B1_c.fac 28 | -------------------------------------------------------------------------------- /Resources/OverlayEditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/OverlayEditor.png -------------------------------------------------------------------------------- /Resources/Sea01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/Sea01.png -------------------------------------------------------------------------------- /Resources/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/add.png -------------------------------------------------------------------------------- /Resources/airport0_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/airport0_000.png -------------------------------------------------------------------------------- /Resources/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/background.png -------------------------------------------------------------------------------- /Resources/background.pspimage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/background.pspimage -------------------------------------------------------------------------------- /Resources/bad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/bad.png -------------------------------------------------------------------------------- /Resources/blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/blank.png -------------------------------------------------------------------------------- /Resources/default.obj: -------------------------------------------------------------------------------- 1 | I 2 | 800 3 | OBJ 4 | 5 | TEXTURE fallback.png 6 | TEXTURE_LIT fallback_LIT.png 7 | POINT_COUNTS 8 0 0 18 8 | 9 | VT 0.5000 1.0000 -0.5000 0.532 0.658 -0.532 1.0 1.0 10 | VT -0.5000 1.0000 0.5000 -0.532 0.658 0.532 0.0 0.0 11 | VT -0.5000 1.0000 -0.5000 -0.705 0.083 -0.705 0.0 1.0 12 | VT 0.5000 1.0000 0.5000 0.705 0.083 0.705 1.0 0.0 13 | VT 0.0000 0.0000 -0.0000 0.000 -1.000 -0.000 0.5 0.0 14 | VT 0.0000 0.0000 -0.0000 0.000 -1.000 -0.000 0.0 0.5 15 | VT 0.0000 0.0000 -0.0000 0.000 -1.000 -0.000 0.5 1.0 16 | VT 0.0000 0.0000 -0.0000 0.000 -1.000 -0.000 1.0 0.5 17 | 18 | IDX10 0 1 2 3 1 0 4 1 3 5 19 | IDX 2 20 | IDX 1 21 | IDX 6 22 | IDX 0 23 | IDX 2 24 | IDX 0 25 | IDX 7 26 | IDX 3 27 | 28 | TRIS 0 18 29 | 30 | # Built with Blender 2.48. Exported with XPlane2Blender 3.10. 31 | -------------------------------------------------------------------------------- /Resources/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/delete.png -------------------------------------------------------------------------------- /Resources/exc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/exc.png -------------------------------------------------------------------------------- /Resources/fac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/fac.png -------------------------------------------------------------------------------- /Resources/facs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/facs.png -------------------------------------------------------------------------------- /Resources/fallback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/fallback.png -------------------------------------------------------------------------------- /Resources/for.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/for.png -------------------------------------------------------------------------------- /Resources/fors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/fors.png -------------------------------------------------------------------------------- /Resources/goto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/goto.png -------------------------------------------------------------------------------- /Resources/goto.pspimage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/goto.pspimage -------------------------------------------------------------------------------- /Resources/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/help.png -------------------------------------------------------------------------------- /Resources/import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/import.png -------------------------------------------------------------------------------- /Resources/import.pspimage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/import.pspimage -------------------------------------------------------------------------------- /Resources/inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/inspector.png -------------------------------------------------------------------------------- /Resources/lin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/lin.png -------------------------------------------------------------------------------- /Resources/lins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/lins.png -------------------------------------------------------------------------------- /Resources/net.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/net.png -------------------------------------------------------------------------------- /Resources/new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/new.png -------------------------------------------------------------------------------- /Resources/obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/obj.png -------------------------------------------------------------------------------- /Resources/objs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/objs.png -------------------------------------------------------------------------------- /Resources/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/open.png -------------------------------------------------------------------------------- /Resources/ortho.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/ortho.png -------------------------------------------------------------------------------- /Resources/orthos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/orthos.png -------------------------------------------------------------------------------- /Resources/padlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/padlock.png -------------------------------------------------------------------------------- /Resources/pol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/pol.png -------------------------------------------------------------------------------- /Resources/pols.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/pols.png -------------------------------------------------------------------------------- /Resources/prefs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/prefs.png -------------------------------------------------------------------------------- /Resources/previews/com_convertrow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/com_convertrow.jpg -------------------------------------------------------------------------------- /Resources/previews/com_convertrow.pspimage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/com_convertrow.pspimage -------------------------------------------------------------------------------- /Resources/previews/com_lowoffice.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/com_lowoffice.jpg -------------------------------------------------------------------------------- /Resources/previews/com_medoffice.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/com_medoffice.jpg -------------------------------------------------------------------------------- /Resources/previews/com_rowshops.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/com_rowshops.jpg -------------------------------------------------------------------------------- /Resources/previews/com_skyscraper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/com_skyscraper.jpg -------------------------------------------------------------------------------- /Resources/previews/ind_storage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/ind_storage.jpg -------------------------------------------------------------------------------- /Resources/previews/ins_cityschool.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/ins_cityschool.jpg -------------------------------------------------------------------------------- /Resources/previews/ins_university.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/ins_university.jpg -------------------------------------------------------------------------------- /Resources/previews/lib_cars_car.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/lib_cars_car.jpg -------------------------------------------------------------------------------- /Resources/previews/lib_cars_car.pspimage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/lib_cars_car.pspimage -------------------------------------------------------------------------------- /Resources/previews/lib_cars_car_or_truck.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/lib_cars_car_or_truck.jpg -------------------------------------------------------------------------------- /Resources/previews/lib_cars_car_or_truck.pspimage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/lib_cars_car_or_truck.pspimage -------------------------------------------------------------------------------- /Resources/previews/lib_dynamic_balloon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/lib_dynamic_balloon.jpg -------------------------------------------------------------------------------- /Resources/previews/lib_dynamic_balloon.pspimage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/lib_dynamic_balloon.pspimage -------------------------------------------------------------------------------- /Resources/previews/lib_ships_Carrier.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/lib_ships_Carrier.jpg -------------------------------------------------------------------------------- /Resources/previews/lib_ships_Frigate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/lib_ships_Frigate.jpg -------------------------------------------------------------------------------- /Resources/previews/lib_ships_OilPlatform.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/lib_ships_OilPlatform.jpg -------------------------------------------------------------------------------- /Resources/previews/lib_ships_OilRig.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/lib_ships_OilRig.jpg -------------------------------------------------------------------------------- /Resources/previews/lib_ships_SailBoat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/lib_ships_SailBoat.jpg -------------------------------------------------------------------------------- /Resources/previews/res_hotel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/res_hotel.jpg -------------------------------------------------------------------------------- /Resources/previews/res_lowapt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/res_lowapt.jpg -------------------------------------------------------------------------------- /Resources/previews/res_midapt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/res_midapt.jpg -------------------------------------------------------------------------------- /Resources/previews/res_rowhouses.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/res_rowhouses.jpg -------------------------------------------------------------------------------- /Resources/previews/res_singlehouse.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/previews/res_singlehouse.jpg -------------------------------------------------------------------------------- /Resources/reload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/reload.png -------------------------------------------------------------------------------- /Resources/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/save.png -------------------------------------------------------------------------------- /Resources/screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/screenshot.jpg -------------------------------------------------------------------------------- /Resources/surfaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/surfaces.png -------------------------------------------------------------------------------- /Resources/surfaces.pspimage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/surfaces.pspimage -------------------------------------------------------------------------------- /Resources/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/undo.png -------------------------------------------------------------------------------- /Resources/undo.pspimage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/undo.pspimage -------------------------------------------------------------------------------- /Resources/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/unknown.png -------------------------------------------------------------------------------- /Resources/unknowns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/unknowns.png -------------------------------------------------------------------------------- /Resources/windsock.obj: -------------------------------------------------------------------------------- 1 | I 2 | 800 3 | OBJ 4 | 5 | TEXTURE windsock.png 6 | TEXTURE_LIT windsock_LIT.png 7 | POINT_COUNTS 48 0 0 120 8 | 9 | VT -0.030 0.000 0.030 -0.707 0.000 0.707 0.95 0.0 10 | VT -0.030 3.500 0.030 -0.707 0.000 0.707 0.95 1.0 11 | VT 0.030 3.500 0.030 0.707 0.000 0.707 1.0 1.0 12 | VT 0.030 0.000 0.030 0.707 0.000 0.707 1.0 0.0 13 | VT -0.030 0.000 -0.030 -0.707 0.000 -0.707 0.95 0.0 14 | VT -0.030 3.500 -0.030 -0.707 0.000 -0.707 0.95 1.0 15 | VT -0.030 3.500 0.030 -0.707 0.000 0.707 1.0 1.0 16 | VT -0.030 0.000 0.030 -0.707 0.000 0.707 1.0 0.0 17 | VT 0.030 0.000 -0.030 0.707 0.000 -0.707 1.0 0.0 18 | VT 0.030 3.500 -0.030 0.707 0.000 -0.707 1.0 1.0 19 | VT 0.030 3.500 -0.030 0.707 0.000 -0.707 0.95 1.0 20 | VT 0.030 0.000 -0.030 0.707 0.000 -0.707 0.95 0.0 21 | VT 1.315 1.987 -0.070 0.656 -0.754 -0.035 0.7 1.0 22 | VT 0.141 2.934 -0.150 0.235 -0.940 -0.249 0.7 0.5 23 | VT 0.141 2.934 0.150 0.235 -0.940 0.249 0.8 0.5 24 | VT 1.315 1.987 0.070 0.656 -0.754 0.035 0.8 1.0 25 | VT 1.365 2.036 -0.140 0.680 -0.730 -0.070 0.6 1.0 26 | VT 0.247 3.040 -0.300 0.411 -0.763 -0.498 0.6 0.5 27 | VT 1.464 2.135 -0.140 0.730 -0.680 -0.070 0.5 1.0 28 | VT 0.460 3.253 -0.300 0.763 -0.411 -0.498 0.5 0.5 29 | VT 1.513 2.185 -0.070 0.754 -0.656 -0.035 0.4 1.0 30 | VT 0.566 3.359 -0.150 0.940 -0.235 -0.249 0.4 0.5 31 | VT 1.513 2.185 0.070 0.754 -0.656 0.035 0.3 1.0 32 | VT 0.566 3.359 0.150 0.940 -0.235 0.249 0.3 0.5 33 | VT 1.464 2.135 0.140 0.730 -0.680 0.070 0.2 1.0 34 | VT 0.460 3.253 0.300 0.763 -0.411 0.498 0.2 0.5 35 | VT 1.365 2.036 0.140 0.680 -0.730 0.070 0.1 1.0 36 | VT 0.247 3.040 0.300 0.411 -0.763 0.498 0.1 0.5 37 | VT 1.315 1.987 0.070 0.656 -0.754 0.035 0.0 1.0 38 | VT 0.141 2.934 0.150 0.235 -0.940 0.249 0.0 0.5 39 | VT 1.365 2.036 0.140 0.680 -0.730 0.070 0.1 0.5 40 | VT 0.247 3.040 0.300 0.411 -0.763 0.498 0.1 0.0 41 | VT 0.141 2.934 0.150 0.235 -0.940 0.249 0.0 0.0 42 | VT 1.315 1.987 0.070 0.656 -0.754 0.035 0.0 0.5 43 | VT 1.464 2.135 0.140 0.730 -0.680 0.070 0.2 0.5 44 | VT 0.460 3.253 0.300 0.763 -0.411 0.498 0.2 0.0 45 | VT 1.513 2.185 0.070 0.754 -0.656 0.035 0.3 0.5 46 | VT 0.566 3.359 0.150 0.940 -0.235 0.249 0.3 0.0 47 | VT 1.513 2.185 -0.070 0.754 -0.656 -0.035 0.4 0.5 48 | VT 0.566 3.359 -0.150 0.940 -0.235 -0.249 0.4 0.0 49 | VT 1.464 2.135 -0.140 0.730 -0.680 -0.070 0.5 0.5 50 | VT 0.460 3.253 -0.300 0.763 -0.411 -0.498 0.5 0.0 51 | VT 1.365 2.036 -0.140 0.680 -0.730 -0.070 0.6 0.5 52 | VT 0.247 3.040 -0.300 0.411 -0.763 -0.498 0.6 0.0 53 | VT 1.315 1.987 -0.070 0.656 -0.754 -0.035 0.7 0.5 54 | VT 0.141 2.934 -0.150 0.235 -0.940 -0.249 0.7 0.0 55 | VT 1.315 1.987 0.070 0.656 -0.754 0.035 0.8 0.5 56 | VT 0.141 2.934 0.150 0.235 -0.940 0.249 0.8 0.0 57 | 58 | IDX10 0 1 2 0 2 3 4 5 6 4 59 | IDX10 6 7 8 9 5 8 5 4 10 11 60 | IDX10 3 10 3 2 12 13 14 12 14 15 61 | IDX10 16 17 13 16 13 12 18 19 17 18 62 | IDX10 17 16 20 21 19 20 19 18 22 23 63 | IDX10 21 22 21 20 24 25 23 24 23 22 64 | IDX10 26 27 25 26 25 24 27 26 28 27 65 | IDX10 28 29 30 31 32 30 32 33 34 35 66 | IDX10 31 34 31 30 36 37 35 36 35 34 67 | IDX10 38 39 37 38 37 36 40 41 39 40 68 | IDX10 39 38 42 43 41 42 41 40 44 45 69 | IDX10 43 44 43 42 45 44 46 45 46 47 70 | 71 | TRIS 0 120 72 | 73 | # Built with Blender 2.41. Exported with XPlane2Blender 2.25. 74 | -------------------------------------------------------------------------------- /Resources/windsock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/Resources/windsock.png -------------------------------------------------------------------------------- /delPrefs.command: -------------------------------------------------------------------------------- 1 | rm -f ~/.overlayeditor 2 | -------------------------------------------------------------------------------- /dist.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | for /f "usebackq tokens=1,2" %%I in (`C:\Progra~1\Python25\python.exe -c "from version import appversion; print '%%4.2f %%d'%%(appversion, round(appversion*100,0))"`) do (set VERSION=%%I&set VER=%%J) 4 | 5 | if exist dist rd /s /q dist 6 | if exist build rd /s /q build 7 | "C:\Program Files\Python25\python.exe" -OO win32\setup.py -q py2exe 8 | "C:\Program Files\NSIS\makensis.exe" /nocd /v2 win32\OverlayEditor.nsi 9 | REM rd /s /q build 10 | -------------------------------------------------------------------------------- /doc/Catalyst 811 Log.txt: -------------------------------------------------------------------------------- 1 | log.txt for X-Plane 9.22rc1 X-Plane 92201 compiled on Dec 4 2008 12:56:02 2 | 3 | This log file is generated automatically by Laminar Research applications and contains diagnostics about your graphics hardware, installation, and any error conditions. 4 | If you need to contact tech support or file a bug, please send us this file. NOTE: this file is rewritten every time you start ANY of your X-System applications. 5 | 6 | If you got a hard system crash and want to report this to Laminar Research, then be sure to send your crash_report.txt file generated by the crash as well! 7 | 8 | Windows 5.1 (build 2600/2) Service Pack 3 9 | CPU type: 586 10 | Physical Memory: 2146156544 11 | CPU 0: AMD Athlon(tm) 64 Processor 3400+ Speed (mhz): 2202 12 | 13 | X-System folder:'C:\Games/X-Plane/', case sensitive=0 14 | 15 | OpenGL Vendor : ATI Technologies Inc. 16 | OpenGL Render : ATI Radeon HD 3650 Series 17 | OpenGL Version : 2.1.8201 Release (210) 18 | OpenGL Extensions: GL_AMDX_vertex_shader_tessellator GL_AMD_performance_monitor GL_ARB_color_buffer_float GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_instanced GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_shader_objects GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_shadow_ambient GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_transpose_matrix GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_envmap_bumpmap GL_ATI_fragment_shader GL_ATI_meminfo GL_ATI_separate_stencil GL_ATI_texture_compression_3dc GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_copy_texture GL_EXT_depth_buffer_float GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_EXT_subtexture GL_EXT_texgen_reflection GL_EXT_texture3D GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_EXT_transform_feedback GL_EXT_vertex_array GL_KTX_buffer_region GL_NV_blend_square GL_NV_texgen_reflection GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_WIN_swap_hint WGL_EXT_swap_control 19 | use_vsync1 : 0 20 | use_vsync2 : 0 21 | tex_clamp_avail : 1 22 | add_env_avail : 1 23 | combine_avail : 1 24 | dis_fog_avail : 0 25 | tex_comp_avail : 1 26 | vbo_avail : 1 27 | pbo_avail : 1 28 | vprog_avail : 1 (2147483647) 29 | fprog_avail : 1 (2147483647/2147483647/2147483647/128) 30 | automini_avail : 1 31 | aniso_avail : 1 32 | fsaa_avail : 1 33 | sprites_avail : 1 34 | depth_tex_avail : 1 35 | occlude_avail : 1 36 | shad_objs_avail : 1 37 | vshader_avail : 1 (16/512/68/16/16/512) 38 | fshader_avail : 1 (512) 39 | gshader_avail : 0 40 | buniform_avail : 0 41 | glsl_avail : 1 (1.20) 42 | framebuf_avail : 1 43 | sblend_avail : 1 44 | tex_float_avail : 1 45 | packed_stencil : 1 46 | threaded_avail : 1 47 | first-gen shaders: 0 48 | max tex units : 8 (16/16) 49 | max iso filtering: 16.000000 50 | max texture size : 8192 51 | max point size : 63.000000 52 | CPU count : 1 53 | Fetching plugins for C:\Games\X-Plane\Resources\plugins 54 | 55 | Loaded: C:\Games\X-Plane\Resources\plugins\PluginAdmin\win.xpl. 56 | 57 | Loaded: C:\Games\X-Plane\Resources\plugins\AutoGateWin.xpl. 58 | 59 | Loaded: C:\Games\X-Plane\Resources\plugins\DataRefEditorWin.xpl. 60 | 61 | Loaded: C:\Games\X-Plane\Resources\plugins\DataRefTesterWin.xpl. 62 | 63 | Loaded: C:\Games\X-Plane\Resources\plugins\g2xpl.xpl. 64 | 65 | Loaded: C:\Games\X-Plane\Resources\plugins\PythonInterfaceWin25.xpl. 66 | 67 | Found stats plugin: 3 68 | I found the following scenery packages (prioritized in this order): 69 | 0 Custom Scenery/Airhispania/ 70 | 1 Custom Scenery/Ascension/ 71 | 2 Custom Scenery/Britain+Ireland roads/ 72 | 3 Custom Scenery/Colombia/ 73 | 4 Custom Scenery/Corsica_ARB/ 74 | 5 Custom Scenery/Corsica_OBJ/ 75 | 6 Custom Scenery/Corsica_TER/ 76 | 7 Custom Scenery/d_eddn_Nuernberg_2.0/ 77 | 8 Custom Scenery/Daytona_Beach/ 78 | 9 Custom Scenery/EFRO/ 79 | 10 Custom Scenery/EGLL/ 80 | 11 Custom Scenery/ESSB/ 81 | 12 Custom Scenery/Faroes/ 82 | 13 Custom Scenery/KORD/ 83 | 14 Custom Scenery/KSBD AutoGate Demo/ 84 | 15 Custom Scenery/KSBD Demo Area/ 85 | 16 Custom Scenery/LAX/ 86 | 17 Custom Scenery/LFMP Rivesaltes/ 87 | 18 Custom Scenery/LOWI Demo Area/ 88 | 19 Custom Scenery/LOWI Demo overlay/ 89 | 20 Custom Scenery/LOWI Demo terrain/ 90 | 21 Custom Scenery/Mars Demo Area/ 91 | 22 Custom Scenery/MSFS scenery/ 92 | 23 Custom Scenery/Night_Lights_Sydney/ 93 | 24 Custom Scenery/NL52004 v3/ 94 | 25 Custom Scenery/OMDB/ 95 | 26 Custom Scenery/OpenSceneryX/ 96 | 27 Custom Scenery/PARIS_airfields_DSF/ 97 | 28 Custom Scenery/PARIS_DSF/ 98 | 29 Custom Scenery/SYDNEY4.0_.3b/ 99 | 30 Custom Scenery/Test/ 100 | 31 Custom Scenery/UK_WWII_EGOD/ 101 | 32 Custom Scenery/Vantaa/ 102 | 33 Custom Scenery/XPIH Dublin Ireland r260/ 103 | 34 Custom Scenery/XPublish/ 104 | 35 Custom Scenery/z_g2xpl-overlay/ 105 | 36 Custom Scenery/z_g2xpl-terrain/ 106 | 37 Global Scenery/-global overlays-/ 107 | 38 Global Scenery/-global terrain-/ 108 | 39 Resources/default scenery/700 roads/ 109 | 40 Resources/default scenery/900 beaches/ 110 | 41 Resources/default scenery/900 europe objects/ 111 | 42 Resources/default scenery/900 forests/ 112 | 43 Resources/default scenery/900 red terrain/ 113 | 44 Resources/default scenery/900 roads/ 114 | 45 Resources/default scenery/900 us objects/ 115 | 46 Resources/default scenery/900 world object placeholders/ 116 | 47 Resources/default scenery/900 world terrain/ 117 | 48 Resources/default scenery/default apt dat/ 118 | 49 Resources/default scenery/sim objects/ 119 | 120 | We found a duplicate runway 15/33 vs 15/33 at airport SKLP 121 | We found a duplicate runway 15/33 vs 15/33 at airport SKLP 122 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 123 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 124 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 125 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 126 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 127 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 128 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 129 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 130 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 131 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 132 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 133 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 134 | We found a duplicate runway 16/34 vs 16/34 at airport SKNC 135 | We found a duplicate runway 16/34 vs 16/34 at airport SKNC 136 | We found a duplicate runway 36/18 vs 36/18 at airport SKNV 137 | We found a duplicate runway 36/18 vs 36/18 at airport SKNV 138 | We found a duplicate runway 36/18 vs 36/18 at airport SKNV 139 | We found a duplicate runway 36/18 vs 36/18 at airport SKNV 140 | We found a duplicate runway 36/18 vs 36/18 at airport SKNV 141 | We found a duplicate runway 36/18 vs 36/18 at airport SKNV 142 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 143 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 144 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 145 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 146 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 147 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 148 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 149 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 150 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 151 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 152 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 153 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 154 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 155 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 156 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 157 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 158 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 159 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 160 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 161 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 162 | We found a duplicate runway 01/19 vs 01/19 at airport SKSJ 163 | We found a duplicate runway 01/19 vs 01/19 at airport SKSJ 164 | We found a duplicate runway 01/19 vs 01/19 at airport SKSJ 165 | We found a duplicate runway 01/19 vs 01/19 at airport SKSJ 166 | We found a duplicate runway 01/19 vs 01/19 at airport SKSJ 167 | We found a duplicate runway 01/19 vs 01/19 at airport SKSJ 168 | We found a duplicate runway 36/18 vs 36/18 at airport SKYP 169 | We found a duplicate runway 36/18 vs 36/18 at airport SKYP 170 | We found a duplicate runway 15/33 vs 15/33 at airport Z08V 171 | We found a duplicate runway 15/33 vs 15/33 at airport Z08V 172 | We found a duplicate runway 06/24 vs 06/24 at airport Z09B 173 | We found a duplicate runway 06/24 vs 06/24 at airport Z09B 174 | Syntax error - unknown glyph , 175 | Syntax error - unknown glyph ^ 176 | Syntax error - unknown glyph r 177 | Syntax error - unknown glyph , 178 | (in sign '{@L}R{@R}13-31,^r,' from airport LFMP) 179 | Syntax error - unknown glyph , 180 | Syntax error - unknown glyph ^ 181 | Syntax error - unknown glyph l 182 | (in sign '{@L}H{@R}15-33,^l' from airport LFMP) 183 | Syntax error - unknown glyph at ^ul}P2{@L}P2 184 | Syntax error - unknown glyph at P2{@L}P2 185 | Syntax error - missing closing brace. 186 | (in sign '{@L}P2{@R}16-34CAT{r1}{@Y}{@@}{^ul}P2{@L}P2' from airport EIDW) 187 | Starting scenery shift at 0 188 | DSF rotate time: 5 for 0 DSFs. 189 | DEF load time: 35218 for water. 190 | DEF load time: 32084 for water. 191 | DEF load time: 34190 for water. 192 | DEF load time: 38024 for water. 193 | DSF load time: 5332900 for file Custom Scenery/Ascension/Earth nav data/-10-020/-08-015.dsf 194 | Failed to find resource 'comissing.png' (parent = 'Custom Scenery/XPublish/custom objects/' at 'Custom Scenery/XPublish/custom objects/comissing.dds' 195 | Failed to find resource 'comissing.png' (parent = 'Custom Scenery/XPublish/custom objects/' at 'Custom Scenery/XPublish/custom objects/comissing.png' 196 | Failed to find resource 'comissing.png' (parent = 'Custom Scenery/XPublish/custom objects/' at 'Custom Scenery/XPublish/custom objects/comissing.bmp' 197 | Failed to find resource 'comissing.png' (parent = 'Custom Scenery/XPublish/custom objects/' at 'Custom Scenery/XPublish/custom object textures/comissing.dds' 198 | Failed to find resource 'comissing.png' (parent = 'Custom Scenery/XPublish/custom objects/' at 'Custom Scenery/XPublish/custom object textures/comissing.png' 199 | Failed to find resource 'comissing.png' (parent = 'Custom Scenery/XPublish/custom objects/' at 'Custom Scenery/XPublish/custom object textures/comissing.bmp' 200 | Failed to find resource 'comissing.png' (parent = 'Custom Scenery/XPublish/custom objects/' at 'Resources/bitmaps/terrain/comissing.dds' 201 | Failed to find resource 'comissing.png' (parent = 'Custom Scenery/XPublish/custom objects/' at 'Resources/bitmaps/terrain/comissing.png' 202 | Failed to find resource 'comissing.png' (parent = 'Custom Scenery/XPublish/custom objects/' at 'Resources/bitmaps/terrain/comissing.bmp' 203 | Failed to find resource 'comissing.png' (parent = 'Custom Scenery/XPublish/custom objects/' at 'Resources/comissing.dds' 204 | Failed to find resource 'comissing.png' (parent = 'Custom Scenery/XPublish/custom objects/' at 'Resources/comissing.png' 205 | Failed to find resource 'comissing.png' (parent = 'Custom Scenery/XPublish/custom objects/' at 'Resources/comissing.bmp' 206 | Failed to find resource 'missing.png' (parent = 'Custom Scenery/XPublish/' at 'Custom Scenery/XPublish/missing.dds' 207 | Failed to find resource 'missing.png' (parent = 'Custom Scenery/XPublish/' at 'Custom Scenery/XPublish/missing.png' 208 | Failed to find resource 'missing.png' (parent = 'Custom Scenery/XPublish/' at 'Custom Scenery/XPublish/missing.bmp' 209 | Failed to find resource 'missing.png' (parent = 'Custom Scenery/XPublish/' at 'Custom Scenery/XPublish/custom object textures/missing.dds' 210 | Failed to find resource 'missing.png' (parent = 'Custom Scenery/XPublish/' at 'Custom Scenery/XPublish/custom object textures/missing.png' 211 | Failed to find resource 'missing.png' (parent = 'Custom Scenery/XPublish/' at 'Custom Scenery/XPublish/custom object textures/missing.bmp' 212 | Failed to find resource 'missing.png' (parent = 'Custom Scenery/XPublish/' at 'Resources/bitmaps/terrain/missing.dds' 213 | Failed to find resource 'missing.png' (parent = 'Custom Scenery/XPublish/' at 'Resources/bitmaps/terrain/missing.png' 214 | Failed to find resource 'missing.png' (parent = 'Custom Scenery/XPublish/' at 'Resources/bitmaps/terrain/missing.bmp' 215 | Failed to find resource 'missing.png' (parent = 'Custom Scenery/XPublish/' at 'Resources/missing.dds' 216 | Failed to find resource 'missing.png' (parent = 'Custom Scenery/XPublish/' at 'Resources/missing.png' 217 | Failed to find resource 'missing.png' (parent = 'Custom Scenery/XPublish/' at 'Resources/missing.bmp' 218 | Failed to find resource 'jpeg.jpeg' (parent = 'Custom Scenery/XPublish/' at 'Custom Scenery/XPublish/jpeg..dds' 219 | Failed to find resource 'jpeg.jpeg' (parent = 'Custom Scenery/XPublish/' at 'Custom Scenery/XPublish/jpeg..png' 220 | Failed to find resource 'jpeg.jpeg' (parent = 'Custom Scenery/XPublish/' at 'Custom Scenery/XPublish/jpeg..bmp' 221 | Failed to find resource 'jpeg.jpeg' (parent = 'Custom Scenery/XPublish/' at 'Custom Scenery/XPublish/custom object textures/jpeg..dds' 222 | Failed to find resource 'jpeg.jpeg' (parent = 'Custom Scenery/XPublish/' at 'Custom Scenery/XPublish/custom object textures/jpeg..png' 223 | Failed to find resource 'jpeg.jpeg' (parent = 'Custom Scenery/XPublish/' at 'Custom Scenery/XPublish/custom object textures/jpeg..bmp' 224 | Failed to find resource 'jpeg.jpeg' (parent = 'Custom Scenery/XPublish/' at 'Resources/bitmaps/terrain/jpeg..dds' 225 | Failed to find resource 'jpeg.jpeg' (parent = 'Custom Scenery/XPublish/' at 'Resources/bitmaps/terrain/jpeg..png' 226 | Failed to find resource 'jpeg.jpeg' (parent = 'Custom Scenery/XPublish/' at 'Resources/bitmaps/terrain/jpeg..bmp' 227 | Failed to find resource 'jpeg.jpeg' (parent = 'Custom Scenery/XPublish/' at 'Resources/jpeg..dds' 228 | Failed to find resource 'jpeg.jpeg' (parent = 'Custom Scenery/XPublish/' at 'Resources/jpeg..png' 229 | Failed to find resource 'jpeg.jpeg' (parent = 'Custom Scenery/XPublish/' at 'Resources/jpeg..bmp' 230 | ***Error with scenery file "Custom Scenery/XPublish/missingpoltex.pol" (REN_bezier.cpp: 393.) 231 | Could not locate image file 232 | OK check MemoryLog.txt! I just sent him a dump from This is the dump_mem_stats call from the following code: if(type==t_exit || type == t_alert || recursive_error) 233 | 234 | Error loading the scenery package: 235 | Custom Scenery/XPublish/ 236 | The scenery may not look correct. 237 | Please see the log.txt file for detailed error information. 238 | (io_locate.cpp line 507) 239 | DSF load time: 3618197 for file Custom Scenery/XPublish/Earth nav data/-10-020/-08-015.dsf 240 | DSF load time: 126127 for file Global Scenery/-global overlays-/Earth nav data/-10-020/-08-015.dsf 241 | DSF load time: 235832 for file Global Scenery/-global terrain-/Earth nav data/-10-020/-08-015.dsf 242 | DEF load time: 31991 for water. 243 | Preload time: 606547. 244 | OK check MemoryLog.txt! I just sent him a dump from This is the dump_mem_stats call from the following code: if(type==t_exit || type == t_alert || recursive_error) 245 | 246 | No VERSION-9 DVD found! X-Plane is operating in demo mode. Joystick will be ignored after 10 minutes. 247 | Get your full copy today from WWW.X-PLANE.COM. 248 | Or, if you have an X-Plane VERSION-9 DVD, put it in now and let it spin up before you close this alert box and I will check for it again! 249 | Put your DVD in BEFORE you start X-Plane to avoid this message. 250 | (demo.cpp line 514) 251 | OK check MemoryLog.txt! I just sent him a dump from This is the dump_mem_stats call from the following code: if(type==t_exit || type == t_alert || recursive_error) 252 | 253 | Warning: You have set too many rendering options in the RENDERING OPTIONS window or too much visibility in the SET WEATHER ATMOSPHERE WINDOW for this computer. 254 | The simulator will therefore maintain smooth animation by reducing the visibility, thus allowing a higher frame rate. This gives smoother animation and a more realistic flight model. 255 | To speed up the sim, you should be lower the resolution, switch to 16-bit color, turn off auto-gen scenery, or reduce the visibility. These are the things that can sap the most speed. 256 | To avoid this warning again, speed up the sim, get a faster computer, or turn off the warning in the OPERATIONS AND WARNINGS window in the SETTINGS menu. 257 | (app_up.cpp line 495) 258 | -------------------------------------------------------------------------------- /doc/Catalyst 910 Log.txt: -------------------------------------------------------------------------------- 1 | log.txt for X-Plane 9.22rc1 X-Plane 92201 compiled on Dec 4 2008 12:56:02 2 | 3 | This log file is generated automatically by Laminar Research applications and contains diagnostics about your graphics hardware, installation, and any error conditions. 4 | If you need to contact tech support or file a bug, please send us this file. NOTE: this file is rewritten every time you start ANY of your X-System applications. 5 | 6 | If you got a hard system crash and want to report this to Laminar Research, then be sure to send your crash_report.txt file generated by the crash as well! 7 | 8 | Windows 5.1 (build 2600/2) Service Pack 3 9 | CPU type: 586 10 | Physical Memory: 2146156544 11 | CPU 0: AMD Athlon(tm) 64 Processor 3400+ Speed (mhz): 2203 12 | 13 | X-System folder:'C:\Games/X-Plane/', case sensitive=0 14 | 15 | OpenGL Vendor : ATI Technologies Inc. 16 | OpenGL Render : ATI Radeon HD 3650 17 | OpenGL Version : 2.1.8395 Release (210) 18 | OpenGL Extensions: GL_AMDX_vertex_shader_tessellator GL_AMD_performance_monitor GL_ARB_color_buffer_float GL_ARB_depth_buffer_float GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_instanced GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_shader_objects GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_shadow_ambient GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_transpose_matrix GL_ARB_vertex_array_object GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_envmap_bumpmap GL_ATI_fragment_shader GL_ATI_meminfo GL_ATI_separate_stencil GL_ATI_texture_compression_3dc GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_copy_texture GL_EXT_draw_buffers2 GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_EXT_subtexture GL_EXT_texgen_reflection GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_EXT_transform_feedback GL_EXT_vertex_array GL_KTX_buffer_region GL_NV_blend_square GL_NV_conditional_render GL_NV_texgen_reflection GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_WIN_swap_hint WGL_EXT_swap_control 19 | use_vsync1 : 0 20 | use_vsync2 : 0 21 | tex_clamp_avail : 1 22 | add_env_avail : 1 23 | combine_avail : 1 24 | dis_fog_avail : 0 25 | tex_comp_avail : 1 26 | vbo_avail : 1 27 | pbo_avail : 1 28 | vprog_avail : 1 (2147483647) 29 | fprog_avail : 1 (2147483647/2147483647/2147483647/128) 30 | automini_avail : 1 31 | aniso_avail : 1 32 | fsaa_avail : 1 33 | sprites_avail : 1 34 | depth_tex_avail : 1 35 | occlude_avail : 1 36 | shad_objs_avail : 1 37 | vshader_avail : 1 (16/512/68/16/16/512) 38 | fshader_avail : 1 (512) 39 | gshader_avail : 0 40 | buniform_avail : 0 41 | glsl_avail : 1 (1.20) 42 | framebuf_avail : 1 43 | sblend_avail : 1 44 | tex_float_avail : 1 45 | packed_stencil : 1 46 | threaded_avail : 1 47 | first-gen shaders: 0 48 | max tex units : 8 (16/16) 49 | max iso filtering: 16.000000 50 | max texture size : 8192 51 | max point size : 63.000000 52 | CPU count : 1 53 | Fetching plugins for C:\Games\X-Plane\Resources\plugins 54 | 55 | Loaded: C:\Games\X-Plane\Resources\plugins\PluginAdmin\win.xpl. 56 | 57 | Loaded: C:\Games\X-Plane\Resources\plugins\AutoGateWin.xpl. 58 | 59 | Loaded: C:\Games\X-Plane\Resources\plugins\DataRefEditorWin.xpl. 60 | 61 | Loaded: C:\Games\X-Plane\Resources\plugins\DataRefTesterWin.xpl. 62 | 63 | Loaded: C:\Games\X-Plane\Resources\plugins\g2xpl.xpl. 64 | 65 | Loaded: C:\Games\X-Plane\Resources\plugins\PythonInterfaceWin25.xpl. 66 | 67 | Found stats plugin: 3 68 | I found the following scenery packages (prioritized in this order): 69 | 0 Custom Scenery/Airhispania/ 70 | 1 Custom Scenery/Ascension/ 71 | 2 Custom Scenery/Britain+Ireland roads/ 72 | 3 Custom Scenery/Colombia/ 73 | 4 Custom Scenery/Corsica_ARB/ 74 | 5 Custom Scenery/Corsica_OBJ/ 75 | 6 Custom Scenery/Corsica_TER/ 76 | 7 Custom Scenery/d_eddn_Nuernberg_2.0/ 77 | 8 Custom Scenery/Daytona_Beach/ 78 | 9 Custom Scenery/EFRO/ 79 | 10 Custom Scenery/EGLL/ 80 | 11 Custom Scenery/ESSB/ 81 | 12 Custom Scenery/Faroes/ 82 | 13 Custom Scenery/KORD/ 83 | 14 Custom Scenery/KSBD AutoGate Demo/ 84 | 15 Custom Scenery/KSBD Demo Area/ 85 | 16 Custom Scenery/LAX/ 86 | 17 Custom Scenery/LFMP Rivesaltes/ 87 | 18 Custom Scenery/LOWI Demo Area/ 88 | 19 Custom Scenery/LOWI Demo overlay/ 89 | 20 Custom Scenery/LOWI Demo terrain/ 90 | 21 Custom Scenery/Mars Demo Area/ 91 | 22 Custom Scenery/MSFS scenery/ 92 | 23 Custom Scenery/Night_Lights_Sydney/ 93 | 24 Custom Scenery/NL52004 v3/ 94 | 25 Custom Scenery/OMDB/ 95 | 26 Custom Scenery/OpenSceneryX/ 96 | 27 Custom Scenery/PARIS_airfields_DSF/ 97 | 28 Custom Scenery/PARIS_DSF/ 98 | 29 Custom Scenery/SYDNEY4.0_.3b/ 99 | 30 Custom Scenery/Test/ 100 | 31 Custom Scenery/UK_WWII_EGOD/ 101 | 32 Custom Scenery/Vantaa/ 102 | 33 Custom Scenery/XPIH Dublin Ireland r260/ 103 | 34 Custom Scenery/z_g2xpl-overlay/ 104 | 35 Custom Scenery/z_g2xpl-terrain/ 105 | 36 Global Scenery/-global overlays-/ 106 | 37 Global Scenery/-global terrain-/ 107 | 38 Resources/default scenery/700 roads/ 108 | 39 Resources/default scenery/900 beaches/ 109 | 40 Resources/default scenery/900 europe objects/ 110 | 41 Resources/default scenery/900 forests/ 111 | 42 Resources/default scenery/900 red terrain/ 112 | 43 Resources/default scenery/900 roads/ 113 | 44 Resources/default scenery/900 us objects/ 114 | 45 Resources/default scenery/900 world object placeholders/ 115 | 46 Resources/default scenery/900 world terrain/ 116 | 47 Resources/default scenery/default apt dat/ 117 | 48 Resources/default scenery/sim objects/ 118 | 119 | We found a duplicate runway 15/33 vs 15/33 at airport SKLP 120 | We found a duplicate runway 15/33 vs 15/33 at airport SKLP 121 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 122 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 123 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 124 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 125 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 126 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 127 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 128 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 129 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 130 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 131 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 132 | We found a duplicate runway 04/22 vs 04/22 at airport SKMN 133 | We found a duplicate runway 16/34 vs 16/34 at airport SKNC 134 | We found a duplicate runway 16/34 vs 16/34 at airport SKNC 135 | We found a duplicate runway 36/18 vs 36/18 at airport SKNV 136 | We found a duplicate runway 36/18 vs 36/18 at airport SKNV 137 | We found a duplicate runway 36/18 vs 36/18 at airport SKNV 138 | We found a duplicate runway 36/18 vs 36/18 at airport SKNV 139 | We found a duplicate runway 36/18 vs 36/18 at airport SKNV 140 | We found a duplicate runway 36/18 vs 36/18 at airport SKNV 141 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 142 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 143 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 144 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 145 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 146 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 147 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 148 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 149 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 150 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 151 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 152 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 153 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 154 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 155 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 156 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 157 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 158 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 159 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 160 | We found a duplicate runway 01/19 vs 01/19 at airport SKPD 161 | We found a duplicate runway 01/19 vs 01/19 at airport SKSJ 162 | We found a duplicate runway 01/19 vs 01/19 at airport SKSJ 163 | We found a duplicate runway 01/19 vs 01/19 at airport SKSJ 164 | We found a duplicate runway 01/19 vs 01/19 at airport SKSJ 165 | We found a duplicate runway 01/19 vs 01/19 at airport SKSJ 166 | We found a duplicate runway 01/19 vs 01/19 at airport SKSJ 167 | We found a duplicate runway 36/18 vs 36/18 at airport SKYP 168 | We found a duplicate runway 36/18 vs 36/18 at airport SKYP 169 | We found a duplicate runway 15/33 vs 15/33 at airport Z08V 170 | We found a duplicate runway 15/33 vs 15/33 at airport Z08V 171 | We found a duplicate runway 06/24 vs 06/24 at airport Z09B 172 | We found a duplicate runway 06/24 vs 06/24 at airport Z09B 173 | Syntax error - unknown glyph , 174 | Syntax error - unknown glyph ^ 175 | Syntax error - unknown glyph r 176 | Syntax error - unknown glyph , 177 | (in sign '{@L}R{@R}13-31,^r,' from airport LFMP) 178 | Syntax error - unknown glyph , 179 | Syntax error - unknown glyph ^ 180 | Syntax error - unknown glyph l 181 | (in sign '{@L}H{@R}15-33,^l' from airport LFMP) 182 | Syntax error - unknown glyph at ^ul}P2{@L}P2 183 | Syntax error - unknown glyph at P2{@L}P2 184 | Syntax error - missing closing brace. 185 | (in sign '{@L}P2{@R}16-34CAT{r1}{@Y}{@@}{^ul}P2{@L}P2' from airport EIDW) 186 | Starting scenery shift at 0 187 | DSF rotate time: 4 for 0 DSFs. 188 | DEF load time: 36614 for water. 189 | DEF load time: 36981 for water. 190 | DEF load time: 38904 for water. 191 | DEF load time: 34844 for water. 192 | DSF load time: 1757537 for file Custom Scenery/Ascension/Earth nav data/-10-020/-08-015.dsf 193 | DSF load time: 50477 for file Custom Scenery/z_g2xpl-overlay/Earth nav data/-10-020/-08-015.dsf 194 | DSF load time: 54731 for file Global Scenery/-global overlays-/Earth nav data/-10-020/-08-015.dsf 195 | DSF load time: 191425 for file Global Scenery/-global terrain-/Earth nav data/-10-020/-08-015.dsf 196 | DEF load time: 39350 for water. 197 | Preload time: 1016383. 198 | OK check MemoryLog.txt! I just sent him a dump from This is the dump_mem_stats call from the following code: if(type==t_exit || type == t_alert || recursive_error) 199 | 200 | No VERSION-9 DVD found! X-Plane is operating in demo mode. Joystick will be ignored after 10 minutes. 201 | Get your full copy today from WWW.X-PLANE.COM. 202 | Or, if you have an X-Plane VERSION-9 DVD, put it in now and let it spin up before you close this alert box and I will check for it again! 203 | Put your DVD in BEFORE you start X-Plane to avoid this message. 204 | (demo.cpp line 514) 205 | OK check MemoryLog.txt! I just sent him a dump from This is the dump_mem_stats call from the following code: if(type==t_exit || type == t_alert || recursive_error) 206 | 207 | Warning: You have set too many rendering options in the RENDERING OPTIONS window or too much visibility in the SET WEATHER ATMOSPHERE WINDOW for this computer. 208 | The simulator will therefore maintain smooth animation by reducing the visibility, thus allowing a higher frame rate. This gives smoother animation and a more realistic flight model. 209 | To speed up the sim, you should be lower the resolution, switch to 16-bit color, turn off auto-gen scenery, or reduce the visibility. These are the things that can sap the most speed. 210 | To avoid this warning again, speed up the sim, get a faster computer, or turn off the warning in the OPERATIONS AND WARNINGS window in the SETTINGS menu. 211 | (app_up.cpp line 495) 212 | Clean exit from threads. 213 | -------------------------------------------------------------------------------- /doc/DDS File Reference.URL: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/graphics/reference/ddsfilereference/ddsfileformat.asp 3 | -------------------------------------------------------------------------------- /doc/Fast_Texture_Transfers.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/doc/Fast_Texture_Transfers.pdf -------------------------------------------------------------------------------- /doc/Gillians Mac.Log.txt: -------------------------------------------------------------------------------- 1 | log.txt for X-Plane 8.60 X-Plane 86016 compiled on Feb 23 2007 21:09:17 2 | 3 | This log file is generated automatically by Laminar Research applications and contains diagnostics about your graphics hardware, installation, and 4 | any error conditions. If you need to contact tech support or file a bug, please send us this file. NOTE: this file is rewritten every time you 5 | start ANY of your X-System applications. 6 | 7 | Mac OS X 10.4.10 8 | CPU type: 1765095478 (Pentium) CPU speed (mhz): 2000Bus speed (mhz): 664RAM (MB): 512 9 | X-System folder=/Users/jonathan/Desktop/X-Plane 8.60/ case sensitive=0 10 | '-psn_0_61472769' 11 | CPU count = 2 12 | AGL_RGBA :1 13 | AGL_DOUBLEBUFFER :1 14 | AGL_RED_SIZE :8 15 | AGL_GREEN_SIZE :8 16 | AGL_BLUE_SIZE :8 17 | AGL_ALPHA_SIZE :8 18 | AGL_DEPTH_SIZE :24 19 | Disabling GLSL for GMA 950. 20 | OpenGL Situation : 21 | OpenGL Vendor :Intel Inc. 22 | OpenGL Render :Intel GMA 950 OpenGL Engine 23 | OpenGL Version :1.2 APPLE-1.4.56 24 | OpenGL Extensions:GL_ARB_transpose_matrix GL_ARB_vertex_program GL_ARB_vertex_blend GL_ARB_window_pos GL_ARB_shader_objects GL_ARB_vertex_shader GL_EXT_multi_draw_arrays GL_EXT_clip_volume_hint GL_EXT_rescale_normal GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_gpu_program_parameters GL_APPLE_client_storage GL_APPLE_specular_vector GL_APPLE_transform_hint GL_APPLE_packed_pixels GL_APPLE_fence GL_APPLE_vertex_array_object GL_APPLE_vertex_program_evaluators GL_APPLE_element_array GL_APPLE_flush_render GL_NV_texgen_reflection GL_NV_light_max_exponent GL_IBM_rasterpos_clip GL_SGIS_generate_mipmap GL_ARB_shading_language_100 GL_ARB_texture_border_clamp GL_ARB_multitexture GL_ARB_texture_env_add GL_ARB_texture_cube_map GL_ARB_texture_env_dot3 GL_ARB_texture_env_combine GL_ARB_texture_compression GL_ARB_texture_mirrored_repeat GL_ARB_shadow GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_point_sprite GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ARB_pixel_buffer_object GL_EXT_framebuffer_object GL_EXT_texture_rectangle GL_ARB_texture_rectangle GL_EXT_texture_env_add GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_texture_lod_bias GL_EXT_abgr GL_EXT_bgra GL_EXT_stencil_wrap GL_EXT_texture_filter_anisotropic GL_EXT_separate_specular_color GL_EXT_secondary_color GL_EXT_blend_func_separate GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1 GL_EXT_blend_equation_separate GL_EXT_packed_depth_stencil GL_APPLE_flush_buffer_range GL_APPLE_ycbcr_422 GL_APPLE_texture_range GL_APPLE_pixel_buffer GL_NV_blend_square GL_ATI_texture_env_combine3 GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod 25 | tex_clamp_avail=1 26 | add_env_avail =1 27 | combine_avail =1 28 | dis_fog_avail =0 29 | tex_comp_avail =1 30 | vbo_avail =1 31 | vprog_avail =0 (0) 32 | fprog_avail =1 (96/64/32/4) 33 | automini_avail =1 34 | aniso_avail =1 35 | fsaa_avail =0 36 | sprites_avail =1 37 | depth_tex_avail=1 38 | occlude_avail =0 39 | shad_objs_avail=1 40 | vshader_avail =1 (16/4096/32/16/0/4096) 41 | fshader_avail =1 (4096) 42 | glsl_avail =0 (n/a) 43 | framebuf_avail =1 44 | max tex units :8 (16/8) 45 | max iso filtering:4.000000 46 | max texture size :2048 47 | max point size :64.000000 48 | lowest free text index=84 49 | Unused key: Backspace 50 | Unused key: Tab 51 | Unused key: SHIFT Backspace 52 | Unused key: SHIFT Tab 53 | Unused key: SHIFT Return 54 | Unused key: CTRL Y 55 | Unused key: CTRL Z 56 | Unused key: CTRL Backspace 57 | Unused key: CTRL Tab 58 | Unused key: CTRL Return 59 | Unused key: ALT A 60 | Unused key: ALT B 61 | Unused key: ALT C 62 | Unused key: ALT D 63 | Unused key: ALT F 64 | Unused key: ALT G 65 | Unused key: ALT H 66 | Unused key: ALT I 67 | Unused key: ALT J 68 | Unused key: ALT K 69 | Unused key: ALT L 70 | Unused key: ALT M 71 | Unused key: ALT N 72 | Unused key: ALT O 73 | Unused key: ALT P 74 | Unused key: ALT S 75 | Unused key: ALT U 76 | Unused key: ALT V 77 | Unused key: ALT X 78 | Unused key: ALT Y 79 | Unused key: ALT Z 80 | Unused key: ALT 0 81 | Unused key: ALT 3 82 | Unused key: ALT 4 83 | Unused key: ALT 5 84 | Unused key: ALT 6 85 | Unused key: ALT 7 86 | Unused key: ALT 8 87 | Unused key: ALT 9 88 | Unused key: ALT , 89 | Unused key: ALT - 90 | Unused key: ALT Backspace 91 | Unused key: ALT Tab 92 | Unused key: ALT Return 93 | Unused key: ALT Space 94 | Unused key: ALT Left 95 | Unused key: ALT Up 96 | Unused key: ALT Right 97 | Unused key: ALT Down 98 | Unused key: SHIFT+CTRL 0 99 | Unused key: SHIFT+CTRL 6 100 | Unused key: SHIFT+CTRL 7 101 | Unused key: SHIFT+CTRL 8 102 | Unused key: SHIFT+CTRL 9 103 | Unused key: SHIFT+CTRL - 104 | Unused key: SHIFT+CTRL Backspace 105 | Unused key: SHIFT+CTRL Tab 106 | Unused key: SHIFT+CTRL Return 107 | Unused key: SHIFT+CTRL Space 108 | Dangerous key: ; is bound to sim/view/transparent_panel 109 | Dangerous key: = is bound to sim/general/zoom_in 110 | Dangerous key: . is bound to sim/engines/thrust_reversers_toggle 111 | Dangerous key: ] is bound to sim/flight_controls/pitch_trim_up 112 | Dangerous key: [ is bound to sim/flight_controls/pitch_trim_down 113 | Dangerous key: ' is bound to sim/HUD/brightness_toggle 114 | Dangerous key: \ is bound to sim/view/straight_down 115 | Dangerous key: / is bound to sim/view/show_physics_model 116 | Dangerous key: ` is bound to sim/autopilot/speed_hold 117 | Dangerous key: SHIFT ; is bound to sim/radios/adf_tens_up 118 | Dangerous key: SHIFT = is bound to sim/view/forward_with_hud 119 | Dangerous key: SHIFT . is bound to sim/radios/adf_ones_down 120 | Dangerous key: SHIFT ] is bound to sim/weapons/weapon_target_up 121 | Dangerous key: SHIFT [ is bound to sim/weapons/weapon_target_down 122 | Dangerous key: SHIFT ' is bound to sim/autopilot/wing_leveler 123 | Dangerous key: SHIFT \ is bound to sim/view/circle 124 | Dangerous key: SHIFT / is bound to sim/radios/adf_ones_up 125 | Dangerous key: SHIFT ` is bound to sim/autopilot/heading 126 | Dangerous key: CTRL ; is bound to sim/view/free_view_toggle 127 | Dangerous key: CTRL = is bound to sim/radios/com2_standy_flip 128 | Dangerous key: CTRL . is bound to sim/operation/screenshot 129 | Dangerous key: CTRL ] is bound to sim/radios/select_audio_adf2 130 | Dangerous key: CTRL [ is bound to sim/radios/select_audio_adf1 131 | Dangerous key: CTRL ' is bound to sim/engines/FADEC_toggle 132 | Dangerous key: CTRL \ is bound to sim/view/circle_with_panel 133 | Dangerous key: CTRL / is bound to sim/operation/cycle_dump 134 | Dangerous key: CTRL ` is bound to sim/view/sunglasses 135 | Dangerous key: SHIFT+CTRL . is bound to sim/lights/panel_brightness_up 136 | Dangerous key: SHIFT+CTRL ] is bound to sim/radios/select_audio_nav2 137 | Dangerous key: SHIFT+CTRL [ is bound to sim/radios/select_audio_nav1 138 | Dangerous key: SHIFT+CTRL / is bound to sim/lights/landing_lights_toggle 139 | OpenAL version : 1.1 140 | OpenAL hardware : 141 | OpenAL extensions: ALC_EXT_CAPTURE ALC_ENUMERATION_EXT ALC_EXT_MAC_OSX ALC_EXT_ASA 142 | Trying to find CFM at: Macintosh HD:Users:jonathan:Desktop:X-Plane 8.60:Resources:plugins:XPLM.shlb 143 | failed CFM - frag load failed. 144 | Fetching for Macintosh HD:Users:jonathan:Desktop:X-Plane 8.60:Resources:plugins 145 | Loaded: Macintosh HD:Users:jonathan:Desktop:X-Plane 8.60:Resources:plugins:PluginAdminMac.xpl. 146 | I found the following scenery packages (prioritized in this order): 147 | 0 Custom Scenery/EFRO4/ 148 | 1 Custom Scenery/KSBD Demo Area/ 149 | 2 Custom Scenery/Mars Demo Area/ 150 | 3 Custom Scenery/SAEZ/ 151 | 4 Resources/default scenery/700 roads/ 152 | 5 Resources/default scenery/800 objects/ 153 | 6 Resources/default scenery/820 beaches/ 154 | 7 Resources/default scenery/820 roads/ 155 | 8 Resources/default scenery/820 us objects/ 156 | 9 Resources/default scenery/820 us objects placeholder/ 157 | 10 Resources/default scenery/820 world objects/ 158 | 11 Resources/default scenery/820 world objects placeholder/ 159 | 12 Resources/default scenery/820 world terrain/ 160 | 13 Resources/default scenery/sim objects/ 161 | 14 Resources/default scenery/x-plane terrain/ 162 | Starting scenery shift at 215 163 | DSF rotate time: 4405 for 0 DSFs. 164 | DEF load time: 34552 for water. 165 | Plane Location:34,-117 166 | Scenery Base :33,-119 167 | Sim period: 0 168 | I found an area with no scenery installed! You will see nothing but water around the airports since no scenery is installed for this area! 169 | Buy scenery DVDs at www.X-Plane.com. Email info@X-Plane.com if you need help with installation. 170 | Turn this warning off in the 'Operations and Warnings' screen in the 'Settings' menu to discontinue this warning. 171 | The missing file is +30-120/+33-119.dsf. 172 | (/C++/design++/HLutils/Files/io_scn.cpp line 460) 173 | DEF load time: 7781 for water. 174 | DEF load time: 7333 for water. 175 | DEF load time: 6193 for water. 176 | DSF load time: 11747202 for file Custom Scenery/KSBD Demo Area/Earth nav data:+30-120/+34-118.dsf 177 | DEF load time: 8319 for water. 178 | Preload time: 29820970. 179 | Preload time: 28117995. 180 | Plane Location:34,-117 181 | Scenery Base :33,-119 182 | Sim period: 0 183 | OK quick lesson! 184 | Hit 'b' to turn off the brakes, F1 and F2 for throttle, or drag them with the mouse. 185 | Click on the center of the windshield with the mouse to fly with the mouse. 186 | Have a joystick? OK. Go to the 'Joystick and Equipment' screen in the 'Settings' menu. 187 | (/C++/design++/X-Plane-f/scn_utils.cpp line 744) 188 | Plane Location:34,-117 189 | Scenery Base :33,-119 190 | Sim period: 0 191 | No VERSION-8 DVD found! X-Plane is operating in demo mode. Joystick will be ignored after 6 minutes. 192 | Get your full copy today from WWW.X-PLANE.COM. 193 | Or, if you have an X-Plane VERSION-8 DVD, put it in now and let it spin up before you close this alert box and I will check for it again! 194 | Put your DVD in BEFORE you start X-Plane to avoid this message. 195 | (/C++/design++/HLutils/OOPS_cpp/demo.cpp line 342) 196 | Unused key: Backspace 197 | Unused key: Tab 198 | Unused key: SHIFT Backspace 199 | Unused key: SHIFT Tab 200 | Unused key: SHIFT Return 201 | Unused key: CTRL Y 202 | Unused key: CTRL Z 203 | Unused key: CTRL Backspace 204 | Unused key: CTRL Tab 205 | Unused key: CTRL Return 206 | Unused key: ALT A 207 | Unused key: ALT B 208 | Unused key: ALT C 209 | Unused key: ALT D 210 | Unused key: ALT F 211 | Unused key: ALT G 212 | Unused key: ALT H 213 | Unused key: ALT I 214 | Unused key: ALT J 215 | Unused key: ALT K 216 | Unused key: ALT L 217 | Unused key: ALT M 218 | Unused key: ALT N 219 | Unused key: ALT O 220 | Unused key: ALT P 221 | Unused key: ALT S 222 | Unused key: ALT U 223 | Unused key: ALT V 224 | Unused key: ALT X 225 | Unused key: ALT Y 226 | Unused key: ALT Z 227 | Unused key: ALT 0 228 | Unused key: ALT 3 229 | Unused key: ALT 4 230 | Unused key: ALT 5 231 | Unused key: ALT 6 232 | Unused key: ALT 7 233 | Unused key: ALT 8 234 | Unused key: ALT 9 235 | Unused key: ALT , 236 | Unused key: ALT - 237 | Unused key: ALT Backspace 238 | Unused key: ALT Tab 239 | Unused key: ALT Return 240 | Unused key: ALT Space 241 | Unused key: ALT Left 242 | Unused key: ALT Up 243 | Unused key: ALT Right 244 | Unused key: ALT Down 245 | Unused key: SHIFT+CTRL 0 246 | Unused key: SHIFT+CTRL 6 247 | Unused key: SHIFT+CTRL 7 248 | Unused key: SHIFT+CTRL 8 249 | Unused key: SHIFT+CTRL 9 250 | Unused key: SHIFT+CTRL - 251 | Unused key: SHIFT+CTRL Backspace 252 | Unused key: SHIFT+CTRL Tab 253 | Unused key: SHIFT+CTRL Return 254 | Unused key: SHIFT+CTRL Space 255 | Dangerous key: ; is bound to sim/view/transparent_panel 256 | Dangerous key: = is bound to sim/general/zoom_in 257 | Dangerous key: . is bound to sim/engines/thrust_reversers_toggle 258 | Dangerous key: ] is bound to sim/flight_controls/pitch_trim_up 259 | Dangerous key: [ is bound to sim/flight_controls/pitch_trim_down 260 | Dangerous key: ' is bound to sim/HUD/brightness_toggle 261 | Dangerous key: \ is bound to sim/view/straight_down 262 | Dangerous key: / is bound to sim/view/show_physics_model 263 | Dangerous key: ` is bound to sim/autopilot/speed_hold 264 | Dangerous key: SHIFT ; is bound to sim/radios/adf_tens_up 265 | Dangerous key: SHIFT = is bound to sim/view/forward_with_hud 266 | Dangerous key: SHIFT . is bound to sim/radios/adf_ones_down 267 | Dangerous key: SHIFT ] is bound to sim/weapons/weapon_target_up 268 | Dangerous key: SHIFT [ is bound to sim/weapons/weapon_target_down 269 | Dangerous key: SHIFT ' is bound to sim/autopilot/wing_leveler 270 | Dangerous key: SHIFT \ is bound to sim/view/circle 271 | Dangerous key: SHIFT / is bound to sim/radios/adf_ones_up 272 | Dangerous key: SHIFT ` is bound to sim/autopilot/heading 273 | Dangerous key: CTRL ; is bound to sim/view/free_view_toggle 274 | Dangerous key: CTRL = is bound to sim/radios/com2_standy_flip 275 | Dangerous key: CTRL . is bound to sim/operation/screenshot 276 | Dangerous key: CTRL ] is bound to sim/radios/select_audio_adf2 277 | Dangerous key: CTRL [ is bound to sim/radios/select_audio_adf1 278 | Dangerous key: CTRL ' is bound to sim/engines/FADEC_toggle 279 | Dangerous key: CTRL \ is bound to sim/view/circle_with_panel 280 | Dangerous key: CTRL / is bound to sim/operation/cycle_dump 281 | Dangerous key: CTRL ` is bound to sim/view/sunglasses 282 | Dangerous key: SHIFT+CTRL . is bound to sim/lights/panel_brightness_up 283 | Dangerous key: SHIFT+CTRL ] is bound to sim/radios/select_audio_nav2 284 | Dangerous key: SHIFT+CTRL [ is bound to sim/radios/select_audio_nav1 285 | Dangerous key: SHIFT+CTRL / is bound to sim/lights/landing_lights_toggle 286 | Clean exit from threads. 287 | -------------------------------------------------------------------------------- /doc/Intel950 10.4.8 Log.txt: -------------------------------------------------------------------------------- 1 | log.txt for X-Plane 8.60 Beta-8 Installer 86008 compiled on Jan 5 2007 23:49:18 2 | 3 | This log file is generated automatically by Laminar Research applications and contains diagnostics about your graphics hardware, installation, and 4 | any error conditions. If you need to contact tech support or file a bug, please send us this file. NOTE: this file is rewritten every time you 5 | start ANY of your X-System applications. 6 | 7 | Mac OS X 10.4.8 8 | CPU type: 1765095478 (Pentium) CPU speed (mhz): 2000Bus speed (mhz): 664RAM (MB): 512 9 | X-System folder= case sensitive=1 10 | '-psn_0_3014657' 11 | CPU count = 2 12 | AGL_RGBA :1 13 | AGL_DOUBLEBUFFER :1 14 | AGL_RED_SIZE :8 15 | AGL_GREEN_SIZE :8 16 | AGL_BLUE_SIZE :8 17 | AGL_ALPHA_SIZE :8 18 | AGL_DEPTH_SIZE :24 19 | OpenGL Situation : 20 | OpenGL Vendor :Intel Inc. 21 | OpenGL Render :Intel GMA 950 OpenGL Engine 22 | OpenGL Version :1.2 APPLE-1.4.40 23 | OpenGL Extensions:GL_ARB_transpose_matrix GL_ARB_vertex_program GL_ARB_vertex_blend GL_ARB_window_pos GL_ARB_shader_objects GL_ARB_vertex_shader GL_EXT_multi_draw_arrays GL_EXT_clip_volume_hint GL_EXT_rescale_normal GL_EXT_draw_range_elements GL_EXT_fog_coord GL_APPLE_client_storage GL_APPLE_specular_vector GL_APPLE_transform_hint GL_APPLE_packed_pixels GL_APPLE_fence GL_APPLE_vertex_array_object GL_APPLE_vertex_program_evaluators GL_APPLE_element_array GL_APPLE_flush_render GL_NV_texgen_reflection GL_NV_light_max_exponent GL_IBM_rasterpos_clip GL_SGIS_generate_mipmap GL_ARB_shading_language_100 GL_ARB_texture_border_clamp GL_ARB_multitexture GL_ARB_texture_env_add GL_ARB_texture_cube_map GL_ARB_texture_env_dot3 GL_ARB_texture_env_combine GL_ARB_texture_compression GL_ARB_texture_mirrored_repeat GL_ARB_shadow GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_point_sprite GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ARB_pixel_buffer_object GL_EXT_framebuffer_object GL_EXT_texture_rectangle GL_ARB_texture_rectangle GL_EXT_texture_env_add GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_texture_lod_bias GL_EXT_abgr GL_EXT_bgra GL_EXT_stencil_wrap GL_EXT_texture_filter_anisotropic GL_EXT_separate_specular_color GL_EXT_secondary_color GL_EXT_blend_func_separate GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1 GL_EXT_blend_equation_separate GL_EXT_gpu_program_parameters GL_APPLE_flush_buffer_range GL_APPLE_ycbcr_422 GL_APPLE_texture_range GL_APPLE_pixel_buffer GL_NV_blend_square GL_ATI_texture_env_combine3 GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod 24 | tex_clamp_avail=1 25 | add_env_avail =1 26 | combine_avail =1 27 | dis_fog_avail =0 28 | tex_comp_avail =1 29 | vbo_avail =1 30 | vprog_avail =0 (0) 31 | fprog_avail =1 (96/64/32/4) 32 | automini_avail =1 33 | aniso_avail =1 34 | fsaa_avail =0 35 | sprites_avail =1 36 | depth_tex_avail=1 37 | occlude_avail =0 38 | shad_objs_avail=1 39 | vshader_avail =1 (16/4096/32/16/0/4096) 40 | fshader_avail =1 (4096) 41 | glsl_avail =1 (1.10) 42 | framebuf_avail =1 43 | max tex units :8 (16/8) 44 | max iso filtering:4.000000 45 | max texture size :2048 46 | max point size :64.000000 47 | os_dir_apps:/Applications/ 48 | os_dir_temp:/private/var/tmp/folders.501/TemporaryItems/ 49 | Mem file error. Err=22, file=/Applications/X-System 800/Resources/plugins/XPLM.framework/Resources 50 | Mem file error. Err=22, file=/Applications/X-System 800/Resources/plugins/XPLM.framework/Versions/Current 51 | Mem file error. Err=22, file=/Applications/X-System 800/Resources/plugins/XPWidgets.framework/Resources 52 | Mem file error. Err=22, file=/Applications/X-System 800/Resources/plugins/XPWidgets.framework/Versions/Current 53 | HTTP Error for /private/var/tmp/folders.501/TemporaryItems/2.zip 54 | server =64.182.252.236 55 | file =/X-Plane 8.50/All/Resources/bitmaps/earth_clouds1.png.zip 56 | IsDone =1 57 | IsComplete =0 58 | IsErr =0 59 | GetStat =3 60 | GetOSErr =0 61 | response =OK (#200) 62 | 63 | HTTP Error for /private/var/tmp/folders.501/TemporaryItems/3.zip 64 | server =x-plane.alionis.net 65 | file =/X-Plane 8.50/All/Resources/bitmaps/intro.bmp.zip 66 | IsDone =1 67 | IsComplete =0 68 | IsErr =0 69 | GetStat =3 70 | GetOSErr =0 71 | response =OK (#200) 72 | 73 | Clean exit from threads. 74 | -------------------------------------------------------------------------------- /doc/Lets_Get_Small-2005.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/doc/Lets_Get_Small-2005.pdf -------------------------------------------------------------------------------- /doc/iMac ATI HD 2600.Log.txt: -------------------------------------------------------------------------------- 1 | log.txt for X-Plane 8.60 X-Plane 86016 compiled on Feb 23 2007 21:09:17 2 | 3 | This log file is generated automatically by Laminar Research applications and contains diagnostics about your graphics hardware, installation, and 4 | any error conditions. If you need to contact tech support or file a bug, please send us this file. NOTE: this file is rewritten every time you 5 | start ANY of your X-System applications. 6 | 7 | Mac OS X 10.4.10 8 | CPU type: 1765095478 (Pentium) CPU speed (mhz): 2400Bus speed (mhz): 800RAM (MB): 2048 9 | X-System folder=/Applications/X-Plane 8.60/ case sensitive=0 10 | '-psn_0_29884417' 11 | CPU count = 2 12 | AGL_RGBA :1 13 | AGL_DOUBLEBUFFER :1 14 | AGL_RED_SIZE :8 15 | AGL_GREEN_SIZE :8 16 | AGL_BLUE_SIZE :8 17 | AGL_ALPHA_SIZE :8 18 | AGL_DEPTH_SIZE :32 19 | OpenGL Situation : 20 | OpenGL Vendor :ATI Technologies Inc. 21 | OpenGL Render :ATI Radeon HD 2600 PRO OpenGL Engine 22 | OpenGL Version :2.0 ATI-1.5.6 23 | OpenGL Extensions:GL_ARB_transpose_matrix GL_ARB_vertex_program GL_ARB_vertex_blend GL_ARB_window_pos GL_ARB_shader_objects GL_ARB_vertex_shader GL_EXT_multi_draw_arrays GL_EXT_clip_volume_hint GL_EXT_rescale_normal GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_gpu_program_parameters GL_APPLE_client_storage GL_APPLE_specular_vector GL_APPLE_transform_hint GL_APPLE_packed_pixels GL_APPLE_fence GL_APPLE_vertex_array_object GL_APPLE_vertex_program_evaluators GL_APPLE_element_array GL_APPLE_flush_render GL_APPLE_aux_depth_stencil GL_NV_texgen_reflection GL_NV_light_max_exponent GL_IBM_rasterpos_clip GL_SGIS_generate_mipmap GL_ARB_shading_language_100 GL_ARB_imaging GL_ARB_point_parameters GL_ARB_texture_env_crossbar GL_ARB_texture_border_clamp GL_ARB_multitexture GL_ARB_texture_env_add GL_ARB_texture_cube_map GL_ARB_texture_env_dot3 GL_ARB_multisample GL_ARB_texture_env_combine GL_ARB_texture_compression GL_ARB_texture_mirrored_repeat GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_occlusion_query GL_ARB_point_sprite GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ARB_pixel_buffer_object GL_ARB_draw_buffers GL_ARB_shader_texture_lod GL_EXT_compiled_vertex_array GL_EXT_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_texture_rectangle GL_ARB_texture_rectangle GL_EXT_texture_env_add GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_texture_lod_bias GL_EXT_abgr GL_EXT_bgra GL_EXT_stencil_wrap GL_EXT_texture_filter_anisotropic GL_EXT_separate_specular_color GL_EXT_secondary_color GL_EXT_blend_func_separate GL_EXT_stencil_two_side GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1 GL_EXT_texture_sRGB GL_EXT_blend_equation_separate GL_EXT_texture_mirror_clamp GL_EXT_packed_depth_stencil GL_APPLE_flush_buffer_range GL_APPLE_ycbcr_422 GL_APPLE_vertex_array_range GL_APPLE_texture_range GL_APPLE_float_pixels GL_ATI_texture_float GL_ARB_texture_float GL_ARB_half_float_pixel GL_APPLE_pixel_buffer GL_APPLE_object_purgeable GL_NV_blend_square GL_NV_fog_distance GL_ATI_texture_mirror_once GL_ATI_blend_equation_separate GL_ATI_blend_weighted_minmax GL_ATI_texture_env_combine3 GL_ATI_separate_stencil GL_ATI_texture_compression_3dc GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SGI_color_matrix 24 | tex_clamp_avail=1 25 | add_env_avail =1 26 | combine_avail =1 27 | dis_fog_avail =1 28 | tex_comp_avail =1 29 | vbo_avail =1 30 | vprog_avail =1 (4096) 31 | fprog_avail =1 (4096/2048/2048/4) 32 | automini_avail =1 33 | aniso_avail =1 34 | fsaa_avail =1 35 | sprites_avail =1 36 | depth_tex_avail=1 37 | occlude_avail =1 38 | shad_objs_avail=1 39 | vshader_avail =1 (16/4096/32/16/16/4096) 40 | fshader_avail =1 (4096) 41 | glsl_avail =1 (1.20) 42 | framebuf_avail =1 43 | max tex units :8 (16/8) 44 | max iso filtering:16.000000 45 | max texture size :4096 46 | max point size :64.000000 47 | lowest free text index=84 48 | Unused key: Backspace 49 | Unused key: Tab 50 | Unused key: SHIFT Backspace 51 | Unused key: SHIFT Tab 52 | Unused key: SHIFT Return 53 | Unused key: CTRL Y 54 | Unused key: CTRL Z 55 | Unused key: CTRL Backspace 56 | Unused key: CTRL Tab 57 | Unused key: CTRL Return 58 | Unused key: ALT A 59 | Unused key: ALT B 60 | Unused key: ALT C 61 | Unused key: ALT D 62 | Unused key: ALT F 63 | Unused key: ALT G 64 | Unused key: ALT H 65 | Unused key: ALT I 66 | Unused key: ALT J 67 | Unused key: ALT K 68 | Unused key: ALT L 69 | Unused key: ALT M 70 | Unused key: ALT N 71 | Unused key: ALT O 72 | Unused key: ALT P 73 | Unused key: ALT S 74 | Unused key: ALT U 75 | Unused key: ALT V 76 | Unused key: ALT X 77 | Unused key: ALT Y 78 | Unused key: ALT Z 79 | Unused key: ALT 0 80 | Unused key: ALT 3 81 | Unused key: ALT 4 82 | Unused key: ALT 5 83 | Unused key: ALT 6 84 | Unused key: ALT 7 85 | Unused key: ALT 8 86 | Unused key: ALT 9 87 | Unused key: ALT , 88 | Unused key: ALT - 89 | Unused key: ALT Backspace 90 | Unused key: ALT Tab 91 | Unused key: ALT Return 92 | Unused key: ALT Space 93 | Unused key: ALT Left 94 | Unused key: ALT Up 95 | Unused key: ALT Right 96 | Unused key: ALT Down 97 | Unused key: SHIFT+CTRL 0 98 | Unused key: SHIFT+CTRL 6 99 | Unused key: SHIFT+CTRL 7 100 | Unused key: SHIFT+CTRL 8 101 | Unused key: SHIFT+CTRL 9 102 | Unused key: SHIFT+CTRL - 103 | Unused key: SHIFT+CTRL Backspace 104 | Unused key: SHIFT+CTRL Tab 105 | Unused key: SHIFT+CTRL Return 106 | Unused key: SHIFT+CTRL Space 107 | Dangerous key: ; is bound to sim/view/transparent_panel 108 | Dangerous key: = is bound to sim/general/zoom_in 109 | Dangerous key: . is bound to sim/engines/thrust_reversers_toggle 110 | Dangerous key: ] is bound to sim/flight_controls/pitch_trim_up 111 | Dangerous key: [ is bound to sim/flight_controls/pitch_trim_down 112 | Dangerous key: ' is bound to sim/HUD/brightness_toggle 113 | Dangerous key: \ is bound to sim/view/straight_down 114 | Dangerous key: / is bound to sim/view/show_physics_model 115 | Dangerous key: ` is bound to sim/autopilot/speed_hold 116 | Dangerous key: SHIFT ; is bound to sim/radios/adf_tens_up 117 | Dangerous key: SHIFT = is bound to sim/view/forward_with_hud 118 | Dangerous key: SHIFT . is bound to sim/radios/adf_ones_down 119 | Dangerous key: SHIFT ] is bound to sim/weapons/weapon_target_up 120 | Dangerous key: SHIFT [ is bound to sim/weapons/weapon_target_down 121 | Dangerous key: SHIFT ' is bound to sim/autopilot/wing_leveler 122 | Dangerous key: SHIFT \ is bound to sim/view/circle 123 | Dangerous key: SHIFT / is bound to sim/radios/adf_ones_up 124 | Dangerous key: SHIFT ` is bound to sim/autopilot/heading 125 | Dangerous key: CTRL ; is bound to sim/view/free_view_toggle 126 | Dangerous key: CTRL = is bound to sim/radios/com2_standy_flip 127 | Dangerous key: CTRL . is bound to sim/operation/screenshot 128 | Dangerous key: CTRL ] is bound to sim/radios/select_audio_adf2 129 | Dangerous key: CTRL [ is bound to sim/radios/select_audio_adf1 130 | Dangerous key: CTRL ' is bound to sim/engines/FADEC_toggle 131 | Dangerous key: CTRL \ is bound to sim/view/circle_with_panel 132 | Dangerous key: CTRL / is bound to sim/operation/cycle_dump 133 | Dangerous key: CTRL ` is bound to sim/view/sunglasses 134 | Dangerous key: SHIFT+CTRL . is bound to sim/lights/panel_brightness_up 135 | Dangerous key: SHIFT+CTRL ] is bound to sim/radios/select_audio_nav2 136 | Dangerous key: SHIFT+CTRL [ is bound to sim/radios/select_audio_nav1 137 | Dangerous key: SHIFT+CTRL / is bound to sim/lights/landing_lights_toggle 138 | OpenAL version : 1.1 139 | OpenAL hardware : 140 | OpenAL extensions: ALC_EXT_CAPTURE ALC_ENUMERATION_EXT ALC_EXT_MAC_OSX ALC_EXT_ASA 141 | Trying to find CFM at: Macintosh HD:Applications:X-Plane 8.60:Resources:plugins:XPLM.shlb 142 | failed CFM - frag load failed. 143 | Fetching for Macintosh HD:Applications:X-Plane 8.60:Resources:plugins 144 | Loaded: Macintosh HD:Applications:X-Plane 8.60:Resources:plugins:PluginAdminMac.xpl. 145 | I found the following scenery packages (prioritized in this order): 146 | 0 Custom Scenery/KSBD Demo Area/ 147 | 1 Custom Scenery/Mars Demo Area/ 148 | 2 Resources/default scenery/700 roads/ 149 | 3 Resources/default scenery/800 objects/ 150 | 4 Resources/default scenery/820 beaches/ 151 | 5 Resources/default scenery/820 roads/ 152 | 6 Resources/default scenery/820 us objects/ 153 | 7 Resources/default scenery/820 us objects placeholder/ 154 | 8 Resources/default scenery/820 world objects/ 155 | 9 Resources/default scenery/820 world objects placeholder/ 156 | 10 Resources/default scenery/820 world terrain/ 157 | 11 Resources/default scenery/DSF 820 Earth/ 158 | 12 Resources/default scenery/sim objects/ 159 | 13 Resources/default scenery/x-plane terrain/ 160 | Starting scenery shift at 2 161 | DSF rotate time: 7 for 0 DSFs. 162 | DSF load time: 1457389 for file Resources/default scenery/DSF 820 Earth/Earth nav data:+30-120/+33-119.dsf 163 | DSF load time: 1955069 for file Resources/default scenery/DSF 820 Earth/Earth nav data:+30-120/+33-118.dsf 164 | DSF load time: 912911 for file Resources/default scenery/DSF 820 Earth/Earth nav data:+30-120/+33-117.dsf 165 | DSF load time: 1354083 for file Resources/default scenery/DSF 820 Earth/Earth nav data:+30-120/+34-119.dsf 166 | DSF load time: 1061168 for file Custom Scenery/KSBD Demo Area/Earth nav data:+30-120/+34-118.dsf 167 | DSF load time: 833999 for file Resources/default scenery/DSF 820 Earth/Earth nav data:+30-120/+34-117.dsf 168 | Preload time: 36077477. 169 | Preload time: 1215913. 170 | Plane Location:34,-117 171 | Scenery Base :33,-119 172 | Sim period: 0 173 | OK quick lesson! 174 | Hit 'b' to turn off the brakes, F1 and F2 for throttle, or drag them with the mouse. 175 | Click on the center of the windshield with the mouse to fly with the mouse. 176 | Have a joystick? OK. Go to the 'Joystick and Equipment' screen in the 'Settings' menu. 177 | (/C++/design++/X-Plane-f/scn_utils.cpp line 744) 178 | -------------------------------------------------------------------------------- /doc/nv6800 10.4.2 Log.txt: -------------------------------------------------------------------------------- 1 | log.txt for X-Plane 8.64 X-Plane 86400 compiled on Oct 27 2007 13:26:46 2 | 3 | This log file is generated automatically by Laminar Research applications and contains diagnostics about your graphics hardware, installation, and 4 | any error conditions. If you need to contact tech support or file a bug, please send us this file. NOTE: this file is rewritten every time you 5 | start ANY of your X-System applications. 6 | 7 | Mac OS X 10.4.2 8 | CPU type: 316 (G5/FX) CPU speed (mhz): 2300Bus speed (mhz): 1150RAM (MB): 2048 9 | X-System folder=/Applications/X-Plane 8.64/ case sensitive=0 10 | '-psn_0_9568257' 11 | CPU count = 2 12 | AGL_RGBA :1 13 | AGL_DOUBLEBUFFER :1 14 | AGL_RED_SIZE :8 15 | AGL_GREEN_SIZE :8 16 | AGL_BLUE_SIZE :8 17 | AGL_ALPHA_SIZE :8 18 | AGL_DEPTH_SIZE :24 19 | OpenGL Situation : 20 | OpenGL Vendor :NVIDIA Corporation 21 | OpenGL Render :NVIDIA GeForce 6800 Ultra OpenGL Engine 22 | OpenGL Version :1.5 NVIDIA-1.4.6 23 | OpenGL Extensions:GL_ARB_transpose_matrix GL_ARB_vertex_program GL_ARB_vertex_blend GL_ARB_window_pos GL_ARB_shader_objects GL_ARB_vertex_shader GL_ARB_fragment_shader GL_EXT_multi_draw_arrays GL_EXT_clip_volume_hint GL_EXT_rescale_normal GL_EXT_draw_range_elements GL_EXT_fog_coord GL_APPLE_client_storage GL_APPLE_specular_vector GL_APPLE_transform_hint GL_APPLE_packed_pixels GL_APPLE_fence GL_APPLE_vertex_array_object GL_APPLE_vertex_program_evaluators GL_APPLE_element_array GL_APPLE_flush_render GL_NV_texgen_reflection GL_NV_light_max_exponent GL_IBM_rasterpos_clip GL_SGIS_generate_mipmap GL_ARB_imaging GL_ARB_point_parameters GL_ARB_texture_env_crossbar GL_ARB_texture_border_clamp GL_ARB_multitexture GL_ARB_texture_env_add GL_ARB_texture_cube_map GL_ARB_texture_env_dot3 GL_ARB_multisample GL_ARB_texture_env_combine GL_ARB_texture_compression GL_ARB_texture_mirrored_repeat GL_ARB_shadow GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_occlusion_query GL_ARB_point_sprite GL_ARB_vertex_buffer_object GL_EXT_compiled_vertex_array GL_EXT_texture_rectangle GL_ARB_texture_rectangle GL_EXT_texture_env_add GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_texture_lod_bias GL_EXT_abgr GL_EXT_bgra GL_EXT_stencil_wrap GL_EXT_texture_filter_anisotropic GL_EXT_secondary_color GL_EXT_blend_func_separate GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_texture_compression_s3tc GL_APPLE_ycbcr_422 GL_APPLE_vertex_array_range GL_APPLE_texture_range GL_APPLE_float_pixels GL_APPLE_pixel_buffer GL_NV_point_sprite GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_blend_square GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_fog_distance GL_NV_depth_clamp GL_NV_multisample_filter_hint GL_ATI_texture_env_combine3 GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod 24 | tex_clamp_avail=1 25 | add_env_avail =1 26 | combine_avail =1 27 | dis_fog_avail =1 28 | tex_comp_avail =1 29 | vbo_avail =1 30 | vprog_avail =1 (256) 31 | fprog_avail =1 (1024/1024/1024/1024) 32 | automini_avail =1 33 | aniso_avail =1 34 | fsaa_avail =1 35 | sprites_avail =1 36 | depth_tex_avail=1 37 | occlude_avail =1 38 | shad_objs_avail=1 39 | vshader_avail =1 (16/512/32/16/0/512) 40 | fshader_avail =1 (512) 41 | glsl_avail =0 (n/a) 42 | framebuf_avail =0 43 | max tex units :4 (16/8) 44 | max iso filtering:8.000000 45 | max texture size :4096 46 | max point size :63.375000 47 | lowest free text index=84 48 | Unused key: Backspace 49 | Unused key: Tab 50 | Unused key: SHIFT Backspace 51 | Unused key: SHIFT Tab 52 | Unused key: SHIFT Return 53 | Unused key: CTRL Y 54 | Unused key: CTRL Z 55 | Unused key: CTRL Backspace 56 | Unused key: CTRL Tab 57 | Unused key: CTRL Return 58 | Unused key: ALT A 59 | Unused key: ALT B 60 | Unused key: ALT C 61 | Unused key: ALT D 62 | Unused key: ALT F 63 | Unused key: ALT G 64 | Unused key: ALT H 65 | Unused key: ALT I 66 | Unused key: ALT J 67 | Unused key: ALT K 68 | Unused key: ALT L 69 | Unused key: ALT M 70 | Unused key: ALT N 71 | Unused key: ALT O 72 | Unused key: ALT P 73 | Unused key: ALT S 74 | Unused key: ALT U 75 | Unused key: ALT V 76 | Unused key: ALT X 77 | Unused key: ALT Y 78 | Unused key: ALT Z 79 | Unused key: ALT 0 80 | Unused key: ALT 3 81 | Unused key: ALT 4 82 | Unused key: ALT 5 83 | Unused key: ALT 6 84 | Unused key: ALT 7 85 | Unused key: ALT 8 86 | Unused key: ALT 9 87 | Unused key: ALT , 88 | Unused key: ALT - 89 | Unused key: ALT Backspace 90 | Unused key: ALT Tab 91 | Unused key: ALT Return 92 | Unused key: ALT Space 93 | Unused key: ALT Left 94 | Unused key: ALT Up 95 | Unused key: ALT Right 96 | Unused key: ALT Down 97 | Unused key: SHIFT+CTRL 0 98 | Unused key: SHIFT+CTRL 6 99 | Unused key: SHIFT+CTRL 7 100 | Unused key: SHIFT+CTRL 8 101 | Unused key: SHIFT+CTRL 9 102 | Unused key: SHIFT+CTRL - 103 | Unused key: SHIFT+CTRL Backspace 104 | Unused key: SHIFT+CTRL Tab 105 | Unused key: SHIFT+CTRL Return 106 | Unused key: SHIFT+CTRL Space 107 | Dangerous key: ; is bound to sim/view/transparent_panel 108 | Dangerous key: = is bound to sim/general/zoom_in 109 | Dangerous key: . is bound to sim/engines/thrust_reversers_toggle 110 | Dangerous key: ] is bound to sim/flight_controls/pitch_trim_up 111 | Dangerous key: [ is bound to sim/flight_controls/pitch_trim_down 112 | Dangerous key: ' is bound to sim/HUD/brightness_toggle 113 | Dangerous key: \ is bound to sim/view/straight_down 114 | Dangerous key: / is bound to sim/view/show_physics_model 115 | Dangerous key: ` is bound to sim/autopilot/speed_hold 116 | Dangerous key: SHIFT ; is bound to sim/radios/adf_tens_up 117 | Dangerous key: SHIFT = is bound to sim/view/forward_with_hud 118 | Dangerous key: SHIFT . is bound to sim/radios/adf_ones_down 119 | Dangerous key: SHIFT ] is bound to sim/weapons/weapon_target_up 120 | Dangerous key: SHIFT [ is bound to sim/weapons/weapon_target_down 121 | Dangerous key: SHIFT ' is bound to sim/autopilot/wing_leveler 122 | Dangerous key: SHIFT \ is bound to sim/view/circle 123 | Dangerous key: SHIFT / is bound to sim/radios/adf_ones_up 124 | Dangerous key: SHIFT ` is bound to sim/autopilot/heading 125 | Dangerous key: CTRL ; is bound to sim/view/free_view_toggle 126 | Dangerous key: CTRL = is bound to sim/radios/com2_standy_flip 127 | Dangerous key: CTRL . is bound to sim/operation/screenshot 128 | Dangerous key: CTRL ] is bound to sim/radios/select_audio_adf2 129 | Dangerous key: CTRL [ is bound to sim/radios/select_audio_adf1 130 | Dangerous key: CTRL ' is bound to sim/engines/FADEC_toggle 131 | Dangerous key: CTRL \ is bound to sim/view/circle_with_panel 132 | Dangerous key: CTRL / is bound to sim/operation/cycle_dump 133 | Dangerous key: CTRL ` is bound to sim/view/sunglasses 134 | Dangerous key: SHIFT+CTRL . is bound to sim/lights/panel_brightness_up 135 | Dangerous key: SHIFT+CTRL ] is bound to sim/radios/select_audio_nav2 136 | Dangerous key: SHIFT+CTRL [ is bound to sim/radios/select_audio_nav1 137 | Dangerous key: SHIFT+CTRL / is bound to sim/lights/landing_lights_toggle 138 | OpenAL version : 112762412.112860428 139 | OpenAL hardware : (none) 140 | OpenAL extensions: (none) 141 | Trying to find CFM at: Macintosh HD:Applications:X-Plane 8.64:Resources:plugins:XPLM.shlb 142 | XPLM CFM support loaded. 143 | Fetching for Macintosh HD:Applications:X-Plane 8.64:Resources:plugins 144 | Loaded: Macintosh HD:Applications:X-Plane 8.64:Resources:plugins:PluginAdminMac.xpl. 145 | Loaded: Macintosh HD:Applications:X-Plane 8.64:Resources:plugins:GW_PlugIn.xpl. 146 | Loaded: Macintosh HD:Applications:X-Plane 8.64:Resources:plugins:x737macplugin.xpl. 147 | I found the following scenery packages (prioritized in this order): 148 | 0 Custom Scenery/CessnaCollection/ 149 | 1 Custom Scenery/ChandlerStaticCollection/ 150 | 2 Custom Scenery/KSBD Demo Area/ 151 | 3 Custom Scenery/KTEB/ 152 | 4 Custom Scenery/Mars Demo Area/ 153 | 5 Custom Scenery/OpenSceneryX/ 154 | 6 Custom Scenery/test/ 155 | 7 Resources/default scenery/700 roads/ 156 | 8 Resources/default scenery/800 objects/ 157 | 9 Resources/default scenery/820 beaches/ 158 | 10 Resources/default scenery/820 roads/ 159 | 11 Resources/default scenery/820 us objects/ 160 | 12 Resources/default scenery/820 us objects placeholder/ 161 | 13 Resources/default scenery/820 world objects/ 162 | 14 Resources/default scenery/820 world objects placeholder/ 163 | 15 Resources/default scenery/820 world terrain/ 164 | 16 Resources/default scenery/DSF 820 Earth/ 165 | 17 Resources/default scenery/sim objects/ 166 | 18 Resources/default scenery/x-plane terrain/ 167 | Starting scenery shift at 0 168 | DSF rotate time: 30 for 0 DSFs. 169 | DSF load time: 4774856 for file Resources/default scenery/DSF 820 Earth/Earth nav data:+40-080/+40-076.dsf 170 | DSF load time: 4350545 for file Resources/default scenery/DSF 820 Earth/Earth nav data:+40-080/+40-075.dsf 171 | DSF load time: 1726917 for file Resources/default scenery/DSF 820 Earth/Earth nav data:+40-080/+40-074.dsf 172 | DSF load time: 3462017 for file Resources/default scenery/DSF 820 Earth/Earth nav data:+40-080/+41-076.dsf 173 | DSF load time: 3948432 for file Resources/default scenery/DSF 820 Earth/Earth nav data:+40-080/+41-075.dsf 174 | DSF load time: 3941936 for file Resources/default scenery/DSF 820 Earth/Earth nav data:+40-080/+41-074.dsf 175 | Preload time: 6736055. 176 | Syntax error - unknown glyph  177 | Syntax error - unknown glyph  178 | Could not find tile 37 name is - 179 | Syntax error - unknown glyph  180 | WARNING: padding is not integral! 181 | Syntax error - missing closing brace. 182 | WARNING: padding is not integral! 183 | Preload time: 2123958. 184 | Unused key: Backspace 185 | Unused key: Tab 186 | Unused key: SHIFT Backspace 187 | Unused key: SHIFT Tab 188 | Unused key: SHIFT Return 189 | Unused key: CTRL Y 190 | Unused key: CTRL Z 191 | Unused key: CTRL Backspace 192 | Unused key: CTRL Tab 193 | Unused key: CTRL Return 194 | Unused key: ALT A 195 | Unused key: ALT B 196 | Unused key: ALT C 197 | Unused key: ALT D 198 | Unused key: ALT F 199 | Unused key: ALT G 200 | Unused key: ALT H 201 | Unused key: ALT I 202 | Unused key: ALT J 203 | Unused key: ALT K 204 | Unused key: ALT L 205 | Unused key: ALT M 206 | Unused key: ALT N 207 | Unused key: ALT O 208 | Unused key: ALT P 209 | Unused key: ALT S 210 | Unused key: ALT U 211 | Unused key: ALT V 212 | Unused key: ALT X 213 | Unused key: ALT Y 214 | Unused key: ALT Z 215 | Unused key: ALT 0 216 | Unused key: ALT 3 217 | Unused key: ALT 4 218 | Unused key: ALT 5 219 | Unused key: ALT 6 220 | Unused key: ALT 7 221 | Unused key: ALT 8 222 | Unused key: ALT 9 223 | Unused key: ALT , 224 | Unused key: ALT - 225 | Unused key: ALT Backspace 226 | Unused key: ALT Tab 227 | Unused key: ALT Return 228 | Unused key: ALT Space 229 | Unused key: ALT Left 230 | Unused key: ALT Up 231 | Unused key: ALT Right 232 | Unused key: ALT Down 233 | Unused key: SHIFT+CTRL 0 234 | Unused key: SHIFT+CTRL 6 235 | Unused key: SHIFT+CTRL 7 236 | Unused key: SHIFT+CTRL 8 237 | Unused key: SHIFT+CTRL 9 238 | Unused key: SHIFT+CTRL - 239 | Unused key: SHIFT+CTRL Backspace 240 | Unused key: SHIFT+CTRL Tab 241 | Unused key: SHIFT+CTRL Return 242 | Unused key: SHIFT+CTRL Space 243 | Dangerous key: ; is bound to sim/view/transparent_panel 244 | Dangerous key: = is bound to sim/general/zoom_in 245 | Dangerous key: . is bound to sim/engines/thrust_reversers_toggle 246 | Dangerous key: ] is bound to sim/flight_controls/pitch_trim_up 247 | Dangerous key: [ is bound to sim/flight_controls/pitch_trim_down 248 | Dangerous key: ' is bound to sim/HUD/brightness_toggle 249 | Dangerous key: \ is bound to sim/view/straight_down 250 | Dangerous key: / is bound to sim/view/show_physics_model 251 | Dangerous key: ` is bound to sim/autopilot/speed_hold 252 | Dangerous key: SHIFT ; is bound to sim/radios/adf_tens_up 253 | Dangerous key: SHIFT = is bound to sim/view/forward_with_hud 254 | Dangerous key: SHIFT . is bound to sim/radios/adf_ones_down 255 | Dangerous key: SHIFT ] is bound to sim/weapons/weapon_target_up 256 | Dangerous key: SHIFT [ is bound to sim/weapons/weapon_target_down 257 | Dangerous key: SHIFT ' is bound to sim/autopilot/wing_leveler 258 | Dangerous key: SHIFT \ is bound to sim/view/circle 259 | Dangerous key: SHIFT / is bound to sim/radios/adf_ones_up 260 | Dangerous key: SHIFT ` is bound to sim/autopilot/heading 261 | Dangerous key: CTRL ; is bound to sim/view/free_view_toggle 262 | Dangerous key: CTRL = is bound to sim/radios/com2_standy_flip 263 | Dangerous key: CTRL . is bound to sim/operation/screenshot 264 | Dangerous key: CTRL ] is bound to sim/radios/select_audio_adf2 265 | Dangerous key: CTRL [ is bound to sim/radios/select_audio_adf1 266 | Dangerous key: CTRL ' is bound to sim/engines/FADEC_toggle 267 | Dangerous key: CTRL \ is bound to sim/view/circle_with_panel 268 | Dangerous key: CTRL / is bound to sim/operation/cycle_dump 269 | Dangerous key: CTRL ` is bound to sim/view/sunglasses 270 | Dangerous key: SHIFT+CTRL . is bound to sim/lights/panel_brightness_up 271 | Dangerous key: SHIFT+CTRL ] is bound to sim/radios/select_audio_nav2 272 | Dangerous key: SHIFT+CTRL [ is bound to sim/radios/select_audio_nav1 273 | Dangerous key: SHIFT+CTRL / is bound to sim/lights/landing_lights_toggle 274 | Clean exit from threads. 275 | -------------------------------------------------------------------------------- /doc/versions.txt: -------------------------------------------------------------------------------- 1 | MacOS 10.3/10.4: 2.5.3 2 | MacOS 10.5: 2.8.4 (.2?) 3 | -------------------------------------------------------------------------------- /fixed8x13.py: -------------------------------------------------------------------------------- 1 | # Derived from OpenGLUT og_font_data.c: 2 | # 3 | # The legal status of this file is a bit vague. The font glyphs 4 | # themselves come from XFree86 v4.3.0 (as of this writing), and as 5 | # part of the X server may be subject to the XFree86 copyrights. 6 | # The original freeglut fonts were extracted by a utility written 7 | # by Pawel W. Olszta (see below) and the generated fonts contained 8 | # his copyright exclusively. Steve Baker asserts that Pawel 9 | # assigned intellectual property rights to Steve Baker. Steve 10 | # Baker also asserts that fonts cannot be copyrighted. He has 11 | # neither stripped the copyright from the freeglut fonts nor 12 | # formally retitled anything in his name. Since that time, the 13 | # OpenGLUT project has branched from freeglut, and has made 14 | # necessary modifications to Pawel's ``genfonts'' utility. 15 | # To that extent, OpenGLUT may have some title to this file. 16 | # What is fairly clear is that the font data is licensed under 17 | # the XFree86 license (which is variously termed ``XFree'' and 18 | # ``MIT'' by the freeglut project). It is believed that all 19 | # title holders wish this file to be as useful as possible, and 20 | # that either the ``XFree'' or ``MIT'' license works. 21 | # 22 | # Portions copyright (c) 2004, the OpenGLUT project contributors. 23 | # OpenGLUT branched from freeglut in February, 2004. 24 | # 25 | # Copyright (c) 1999-2000 by Pawel W. Olszta 26 | # Written by Pawel W. Olszta, 27 | # 28 | # Permission is hereby granted, free of charge, to any person obtaining a 29 | # copy of this software and associated documentation files (the "Software"), 30 | # to deal in the Software without restriction, including without limitation 31 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 32 | # and/or sell copies of the Software, and to permit persons to whom the 33 | # Software is furnished to do so, subject to the following conditions: 34 | # 35 | # The above copyright notice and this permission notice shall be included 36 | # in all copies or substantial portions of the Sotware. 37 | # 38 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 39 | # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 40 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 41 | # PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 42 | # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 43 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 44 | 45 | 46 | # See http://openglut.sourceforge.net/openglut_bitmap_8by13.png 47 | 48 | fixed8x13 = [ 49 | [ 0, 0,170, 0,130, 0,130, 0,130, 0,170, 0, 0], 50 | [ 0, 0, 0, 16, 56,124,254,124, 56, 16, 0, 0, 0], 51 | [170, 85,170, 85,170, 85,170, 85,170, 85,170, 85,170], 52 | [ 0, 0, 4, 4, 4, 4,174,160,224,160,160, 0, 0], 53 | [ 0, 0, 8, 8, 12, 8,142,128,192,128,224, 0, 0], 54 | [ 0, 0, 10, 10, 12, 10,108,128,128,128, 96, 0, 0], 55 | [ 0, 0, 8, 8, 12, 8,238,128,128,128,128, 0, 0], 56 | [ 0, 0, 0, 0, 0, 0, 0, 24, 36, 36, 24, 0, 0], 57 | [ 0, 0, 0,124, 0, 16, 16,124, 16, 16, 0, 0, 0], 58 | [ 0, 0, 14, 8, 8, 8,168,160,160,160,192, 0, 0], 59 | [ 0, 0, 4, 4, 4, 4, 46, 80, 80,136,136, 0, 0], 60 | [ 0, 0, 0, 0, 0, 0,240, 16, 16, 16, 16, 16, 16], 61 | [ 16, 16, 16, 16, 16, 16,240, 0, 0, 0, 0, 0, 0], 62 | [ 16, 16, 16, 16, 16, 16, 31, 0, 0, 0, 0, 0, 0], 63 | [ 0, 0, 0, 0, 0, 0, 31, 16, 16, 16, 16, 16, 16], 64 | [ 16, 16, 16, 16, 16, 16,255, 16, 16, 16, 16, 16, 16], 65 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255], 66 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0], 67 | [ 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0, 0], 68 | [ 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0], 69 | [255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 70 | [ 16, 16, 16, 16, 16, 16, 31, 16, 16, 16, 16, 16, 16], 71 | [ 16, 16, 16, 16, 16, 16,240, 16, 16, 16, 16, 16, 16], 72 | [ 0, 0, 0, 0, 0, 0,255, 16, 16, 16, 16, 16, 16], 73 | [ 16, 16, 16, 16, 16, 16,255, 0, 0, 0, 0, 0, 0], 74 | [ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16], 75 | [ 0, 0,254, 0, 14, 48,192, 48, 14, 0, 0, 0, 0], 76 | [ 0, 0,254, 0,224, 24, 6, 24,224, 0, 0, 0, 0], 77 | [ 0, 0, 68, 68, 68, 68, 68,254, 0, 0, 0, 0, 0], 78 | [ 0, 0, 32, 32,126, 16, 8,126, 4, 4, 0, 0, 0], 79 | [ 0, 0,220, 98, 32, 32, 32,112, 32, 34, 28, 0, 0], 80 | [ 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0], 81 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 82 | [ 0, 0, 16, 0, 16, 16, 16, 16, 16, 16, 16, 0, 0], 83 | [ 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36, 0, 0], 84 | [ 0, 0, 0, 36, 36,126, 36,126, 36, 36, 0, 0, 0], 85 | [ 0, 0, 16,120, 20, 20, 56, 80, 80, 60, 16, 0, 0], 86 | [ 0, 0, 68, 42, 36, 16, 8, 8, 36, 82, 34, 0, 0], 87 | [ 0, 0, 58, 68, 74, 48, 72, 72, 48, 0, 0, 0, 0], 88 | [ 0, 0, 0, 0, 0, 0, 0, 0, 64, 48, 56, 0, 0], 89 | [ 0, 0, 4, 8, 8, 16, 16, 16, 8, 8, 4, 0, 0], 90 | [ 0, 0, 32, 16, 16, 8, 8, 8, 16, 16, 32, 0, 0], 91 | [ 0, 0, 0, 0, 36, 24,126, 24, 36, 0, 0, 0, 0], 92 | [ 0, 0, 0, 0, 16, 16,124, 16, 16, 0, 0, 0, 0], 93 | [ 0, 64, 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0], 94 | [ 0, 0, 0, 0, 0, 0,126, 0, 0, 0, 0, 0, 0], 95 | [ 0, 16, 56, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0], 96 | [ 0, 0,128,128, 64, 32, 16, 8, 4, 2, 2, 0, 0], 97 | [ 0, 0, 24, 36, 66, 66, 66, 66, 66, 36, 24, 0, 0], 98 | [ 0, 0,124, 16, 16, 16, 16, 16, 80, 48, 16, 0, 0], 99 | [ 0, 0,126, 64, 32, 24, 4, 2, 66, 66, 60, 0, 0], 100 | [ 0, 0, 60, 66, 2, 2, 28, 8, 4, 2,126, 0, 0], 101 | [ 0, 0, 4, 4,126, 68, 68, 36, 20, 12, 4, 0, 0], 102 | [ 0, 0, 60, 66, 2, 2, 98, 92, 64, 64,126, 0, 0], 103 | [ 0, 0, 60, 66, 66, 98, 92, 64, 64, 32, 28, 0, 0], 104 | [ 0, 0, 32, 32, 16, 16, 8, 8, 4, 2,126, 0, 0], 105 | [ 0, 0, 60, 66, 66, 66, 60, 66, 66, 66, 60, 0, 0], 106 | [ 0, 0, 56, 4, 2, 2, 58, 70, 66, 66, 60, 0, 0], 107 | [ 0, 16, 56, 16, 0, 0, 16, 56, 16, 0, 0, 0, 0], 108 | [ 0, 64, 48, 56, 0, 0, 16, 56, 16, 0, 0, 0, 0], 109 | [ 0, 0, 2, 4, 8, 16, 32, 16, 8, 4, 2, 0, 0], 110 | [ 0, 0, 0, 0,126, 0, 0,126, 0, 0, 0, 0, 0], 111 | [ 0, 0, 64, 32, 16, 8, 4, 8, 16, 32, 64, 0, 0], 112 | [ 0, 0, 8, 0, 8, 8, 4, 2, 66, 66, 60, 0, 0], 113 | [ 0, 0, 60, 64, 74, 86, 82, 78, 66, 66, 60, 0, 0], 114 | [ 0, 0, 66, 66, 66,126, 66, 66, 66, 36, 24, 0, 0], 115 | [ 0, 0,252, 66, 66, 66,124, 66, 66, 66,252, 0, 0], 116 | [ 0, 0, 60, 66, 64, 64, 64, 64, 64, 66, 60, 0, 0], 117 | [ 0, 0,252, 66, 66, 66, 66, 66, 66, 66,252, 0, 0], 118 | [ 0, 0,126, 64, 64, 64,120, 64, 64, 64,126, 0, 0], 119 | [ 0, 0, 64, 64, 64, 64,120, 64, 64, 64,126, 0, 0], 120 | [ 0, 0, 58, 70, 66, 78, 64, 64, 64, 66, 60, 0, 0], 121 | [ 0, 0, 66, 66, 66, 66,126, 66, 66, 66, 66, 0, 0], 122 | [ 0, 0,124, 16, 16, 16, 16, 16, 16, 16,124, 0, 0], 123 | [ 0, 0, 56, 68, 4, 4, 4, 4, 4, 4, 31, 0, 0], 124 | [ 0, 0, 66, 68, 72, 80, 96, 80, 72, 68, 66, 0, 0], 125 | [ 0, 0,126, 64, 64, 64, 64, 64, 64, 64, 64, 0, 0], 126 | [ 0, 0,130,130,130,146,146,170,198,130,130, 0, 0], 127 | [ 0, 0, 66, 66, 66, 70, 74, 82, 98, 66, 66, 0, 0], 128 | [ 0, 0, 60, 66, 66, 66, 66, 66, 66, 66, 60, 0, 0], 129 | [ 0, 0, 64, 64, 64, 64,124, 66, 66, 66,124, 0, 0], 130 | [ 0, 2, 60, 74, 82, 66, 66, 66, 66, 66, 60, 0, 0], 131 | [ 0, 0, 66, 68, 72, 80,124, 66, 66, 66,124, 0, 0], 132 | [ 0, 0, 60, 66, 2, 2, 60, 64, 64, 66, 60, 0, 0], 133 | [ 0, 0, 16, 16, 16, 16, 16, 16, 16, 16,254, 0, 0], 134 | [ 0, 0, 60, 66, 66, 66, 66, 66, 66, 66, 66, 0, 0], 135 | [ 0, 0, 16, 40, 40, 40, 68, 68, 68,130,130, 0, 0], 136 | [ 0, 0, 68,170,146,146,146,130,130,130,130, 0, 0], 137 | [ 0, 0,130,130, 68, 40, 16, 40, 68,130,130, 0, 0], 138 | [ 0, 0, 16, 16, 16, 16, 16, 40, 68,130,130, 0, 0], 139 | [ 0, 0,126, 64, 64, 32, 16, 8, 4, 2,126, 0, 0], 140 | [ 0, 0, 60, 32, 32, 32, 32, 32, 32, 32, 60, 0, 0], 141 | [ 0, 0, 2, 2, 4, 8, 16, 32, 64,128,128, 0, 0], 142 | [ 0, 0,120, 8, 8, 8, 8, 8, 8, 8,120, 0, 0], 143 | [ 0, 0, 0, 0, 0, 0, 0, 0, 68, 40, 16, 0, 0], 144 | [ 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 145 | [ 0, 0, 0, 0, 0, 0, 0, 0, 4, 24, 56, 0, 0], 146 | [ 0, 0, 58, 70, 66, 62, 2, 60, 0, 0, 0, 0, 0], 147 | [ 0, 0, 92, 98, 66, 66, 98, 92, 64, 64, 64, 0, 0], 148 | [ 0, 0, 60, 66, 64, 64, 66, 60, 0, 0, 0, 0, 0], 149 | [ 0, 0, 58, 70, 66, 66, 70, 58, 2, 2, 2, 0, 0], 150 | [ 0, 0, 60, 66, 64,126, 66, 60, 0, 0, 0, 0, 0], 151 | [ 0, 0, 32, 32, 32, 32,124, 32, 32, 34, 28, 0, 0], 152 | [ 60, 66, 60, 64, 56, 68, 68, 58, 0, 0, 0, 0, 0], 153 | [ 0, 0, 66, 66, 66, 66, 98, 92, 64, 64, 64, 0, 0], 154 | [ 0, 0,124, 16, 16, 16, 16, 48, 0, 16, 0, 0, 0], 155 | [ 56, 68, 68, 4, 4, 4, 4, 12, 0, 4, 0, 0, 0], 156 | [ 0, 0, 66, 68, 72,112, 72, 68, 64, 64, 64, 0, 0], 157 | [ 0, 0,124, 16, 16, 16, 16, 16, 16, 16, 48, 0, 0], 158 | [ 0, 0,130,146,146,146,146,236, 0, 0, 0, 0, 0], 159 | [ 0, 0, 66, 66, 66, 66, 98, 92, 0, 0, 0, 0, 0], 160 | [ 0, 0, 60, 66, 66, 66, 66, 60, 0, 0, 0, 0, 0], 161 | [ 64, 64, 64, 92, 98, 66, 98, 92, 0, 0, 0, 0, 0], 162 | [ 2, 2, 2, 58, 70, 66, 70, 58, 0, 0, 0, 0, 0], 163 | [ 0, 0, 32, 32, 32, 32, 34, 92, 0, 0, 0, 0, 0], 164 | [ 0, 0, 60, 66, 12, 48, 66, 60, 0, 0, 0, 0, 0], 165 | [ 0, 0, 28, 34, 32, 32, 32,124, 32, 32, 0, 0, 0], 166 | [ 0, 0, 58, 68, 68, 68, 68, 68, 0, 0, 0, 0, 0], 167 | [ 0, 0, 16, 40, 40, 68, 68, 68, 0, 0, 0, 0, 0], 168 | [ 0, 0, 68,170,146,146,130,130, 0, 0, 0, 0, 0], 169 | [ 0, 0, 66, 36, 24, 24, 36, 66, 0, 0, 0, 0, 0], 170 | [ 60, 66, 2, 58, 70, 66, 66, 66, 0, 0, 0, 0, 0], 171 | [ 0, 0,126, 32, 16, 8, 4,126, 0, 0, 0, 0, 0], 172 | [ 0, 0, 14, 16, 16, 8, 48, 8, 16, 16, 14, 0, 0], 173 | [ 0, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0], 174 | [ 0, 0,112, 8, 8, 16, 12, 16, 8, 8,112, 0, 0], 175 | [ 0, 0, 0, 0, 0, 0, 0, 0, 72, 84, 36, 0, 0], 176 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 177 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 178 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 179 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 180 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 181 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 182 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 183 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 184 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 185 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 186 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 187 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 188 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 189 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 190 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 191 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 192 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 193 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 194 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 195 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 196 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 197 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 198 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 199 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 200 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 201 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 202 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 203 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 204 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 205 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 206 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 207 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 208 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 209 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 210 | [ 0, 0, 16, 16, 16, 16, 16, 16, 16, 0, 16, 0, 0], 211 | [ 0, 0, 0, 16, 56, 84, 80, 80, 84, 56, 16, 0, 0], 212 | [ 0, 0,220, 98, 32, 32, 32,112, 32, 34, 28, 0, 0], 213 | [ 0, 0, 0, 66, 60, 36, 36, 60, 66, 0, 0, 0, 0], 214 | [ 0, 0, 16, 16,124, 16,124, 40, 68,130,130, 0, 0], 215 | [ 0, 0, 16, 16, 16, 16, 0, 16, 16, 16, 16, 0, 0], 216 | [ 0, 0, 24, 36, 4, 24, 36, 36, 24, 32, 36, 24, 0], 217 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 0, 0], 218 | [ 0, 0, 0, 56, 68,146,170,162,170,146, 68, 56, 0], 219 | [ 0, 0, 0, 0,124, 0, 60, 68, 60, 4, 56, 0, 0], 220 | [ 0, 0, 0, 18, 36, 72,144, 72, 36, 18, 0, 0, 0], 221 | [ 0, 0, 0, 2, 2, 2,126, 0, 0, 0, 0, 0, 0], 222 | [ 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0], 223 | [ 0, 0, 0, 56, 68,170,178,170,170,146, 68, 56, 0], 224 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 0, 0], 225 | [ 0, 0, 0, 0, 0, 0, 0, 24, 36, 36, 24, 0, 0], 226 | [ 0, 0, 0,124, 0, 16, 16,124, 16, 16, 0, 0, 0], 227 | [ 0, 0, 0, 0, 0, 0,120, 64, 48, 8, 72, 48, 0], 228 | [ 0, 0, 0, 0, 0, 0, 48, 72, 8, 16, 72, 48, 0], 229 | [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 8, 0], 230 | [ 0, 64, 90,102, 66, 66, 66, 66, 0, 0, 0, 0, 0], 231 | [ 0, 0, 20, 20, 20, 20, 52,116,116,116, 62, 0, 0], 232 | [ 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0], 233 | [ 24, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 234 | [ 0, 0, 0, 0, 0, 0,112, 32, 32, 32, 96, 32, 0], 235 | [ 0, 0, 0, 0, 0,120, 0, 48, 72, 72, 48, 0, 0], 236 | [ 0, 0, 0,144, 72, 36, 18, 36, 72,144, 0, 0, 0], 237 | [ 0, 0, 6, 26, 18, 10,230, 66, 64, 64,192, 64, 0], 238 | [ 0, 0, 30, 16, 12, 2,242, 76, 64, 64,192, 64, 0], 239 | [ 0, 0, 6, 26, 18, 10,102,146, 16, 32,144, 96, 0], 240 | [ 0, 0, 60, 66, 66, 64, 32, 16, 16, 0, 16, 0, 0], 241 | [ 0, 0, 66, 66,126, 66, 66, 36, 24, 0, 8, 16, 0], 242 | [ 0, 0, 66, 66,126, 66, 66, 36, 24, 0, 16, 8, 0], 243 | [ 0, 0, 66, 66,126, 66, 66, 36, 24, 0, 36, 24, 0], 244 | [ 0, 0, 66, 66,126, 66, 66, 36, 24, 0, 76, 50, 0], 245 | [ 0, 0, 66, 66,126, 66, 66, 36, 24, 0, 36, 36, 0], 246 | [ 0, 0, 66, 66,126, 66, 66, 36, 24, 24, 36, 24, 0], 247 | [ 0, 0,158,144,144,240,156,144,144,144,110, 0, 0], 248 | [ 16, 8, 60, 66, 64, 64, 64, 64, 64, 66, 60, 0, 0], 249 | [ 0, 0,126, 64, 64,120, 64, 64,126, 0, 8, 16, 0], 250 | [ 0, 0,126, 64, 64,120, 64, 64,126, 0, 16, 8, 0], 251 | [ 0, 0,126, 64, 64,120, 64, 64,126, 0, 36, 24, 0], 252 | [ 0, 0,126, 64, 64,120, 64, 64,126, 0, 36, 36, 0], 253 | [ 0, 0,124, 16, 16, 16, 16, 16,124, 0, 16, 32, 0], 254 | [ 0, 0,124, 16, 16, 16, 16, 16,124, 0, 16, 8, 0], 255 | [ 0, 0,124, 16, 16, 16, 16, 16,124, 0, 36, 24, 0], 256 | [ 0, 0,124, 16, 16, 16, 16, 16,124, 0, 40, 40, 0], 257 | [ 0, 0,120, 68, 66, 66,226, 66, 66, 68,120, 0, 0], 258 | [ 0, 0,130,134,138,146,162,194,130, 0,152,100, 0], 259 | [ 0, 0,124,130,130,130,130,130,124, 0, 16, 32, 0], 260 | [ 0, 0,124,130,130,130,130,130,124, 0, 16, 8, 0], 261 | [ 0, 0,124,130,130,130,130,130,124, 0, 36, 24, 0], 262 | [ 0, 0,124,130,130,130,130,130,124, 0,152,100, 0], 263 | [ 0, 0,124,130,130,130,130,130,124, 0, 40, 40, 0], 264 | [ 0, 0, 0, 66, 36, 24, 24, 36, 66, 0, 0, 0, 0], 265 | [ 0, 64, 60, 98, 82, 82, 82, 74, 74, 70, 60, 2, 0], 266 | [ 0, 0, 60, 66, 66, 66, 66, 66, 66, 0, 8, 16, 0], 267 | [ 0, 0, 60, 66, 66, 66, 66, 66, 66, 0, 16, 8, 0], 268 | [ 0, 0, 60, 66, 66, 66, 66, 66, 66, 0, 36, 24, 0], 269 | [ 0, 0, 60, 66, 66, 66, 66, 66, 66, 0, 36, 36, 0], 270 | [ 0, 0, 16, 16, 16, 16, 40, 68, 68, 0, 16, 8, 0], 271 | [ 0, 0, 64, 64, 64,124, 66, 66, 66,124, 64, 0, 0], 272 | [ 0, 0, 92, 66, 66, 76, 80, 72, 68, 68, 56, 0, 0], 273 | [ 0, 0, 58, 70, 66, 62, 2, 60, 0, 0, 8, 16, 0], 274 | [ 0, 0, 58, 70, 66, 62, 2, 60, 0, 0, 8, 4, 0], 275 | [ 0, 0, 58, 70, 66, 62, 2, 60, 0, 0, 36, 24, 0], 276 | [ 0, 0, 58, 70, 66, 62, 2, 60, 0, 0, 76, 50, 0], 277 | [ 0, 0, 58, 70, 66, 62, 2, 60, 0, 0, 36, 36, 0], 278 | [ 0, 0, 58, 70, 66, 62, 2, 60, 0, 24, 36, 24, 0], 279 | [ 0, 0,108,146,144,124, 18,108, 0, 0, 0, 0, 0], 280 | [ 16, 8, 60, 66, 64, 64, 66, 60, 0, 0, 0, 0, 0], 281 | [ 0, 0, 60, 66, 64,126, 66, 60, 0, 0, 8, 16, 0], 282 | [ 0, 0, 60, 66, 64,126, 66, 60, 0, 0, 16, 8, 0], 283 | [ 0, 0, 60, 66, 64,126, 66, 60, 0, 0, 36, 24, 0], 284 | [ 0, 0, 60, 66, 64,126, 66, 60, 0, 0, 36, 36, 0], 285 | [ 0, 0,124, 16, 16, 16, 16, 48, 0, 0, 16, 32, 0], 286 | [ 0, 0,124, 16, 16, 16, 16, 48, 0, 0, 32, 16, 0], 287 | [ 0, 0,124, 16, 16, 16, 16, 48, 0, 0, 72, 48, 0], 288 | [ 0, 0,124, 16, 16, 16, 16, 48, 0, 0, 40, 40, 0], 289 | [ 0, 0, 60, 66, 66, 66, 66, 60, 4, 40, 24, 36, 0], 290 | [ 0, 0, 66, 66, 66, 66, 98, 92, 0, 0, 76, 50, 0], 291 | [ 0, 0, 60, 66, 66, 66, 66, 60, 0, 0, 16, 32, 0], 292 | [ 0, 0, 60, 66, 66, 66, 66, 60, 0, 0, 16, 8, 0], 293 | [ 0, 0, 60, 66, 66, 66, 66, 60, 0, 0, 36, 24, 0], 294 | [ 0, 0, 60, 66, 66, 66, 66, 60, 0, 0, 76, 50, 0], 295 | [ 0, 0, 60, 66, 66, 66, 66, 60, 0, 0, 36, 36, 0], 296 | [ 0, 0, 0, 16, 16, 0,124, 0, 16, 16, 0, 0, 0], 297 | [ 0, 64, 60, 98, 82, 74, 70, 60, 2, 0, 0, 0, 0], 298 | [ 0, 0, 58, 68, 68, 68, 68, 68, 0, 0, 16, 32, 0], 299 | [ 0, 0, 58, 68, 68, 68, 68, 68, 0, 0, 16, 8, 0], 300 | [ 0, 0, 58, 68, 68, 68, 68, 68, 0, 0, 36, 24, 0], 301 | [ 0, 0, 58, 68, 68, 68, 68, 68, 0, 0, 40, 40, 0], 302 | [ 60, 66, 2, 58, 70, 66, 66, 66, 0, 0, 16, 8, 0], 303 | [ 64, 64, 92, 98, 66, 66, 98, 92, 64, 64, 0, 0, 0], 304 | [ 60, 66, 2, 58, 70, 66, 66, 66, 0, 0, 36, 36, 0], 305 | ] 306 | -------------------------------------------------------------------------------- /linux/DSFTool: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/linux/DSFTool -------------------------------------------------------------------------------- /linux/control: -------------------------------------------------------------------------------- 1 | Package: overlayeditor 2 | Section: graphics 3 | Priority: extra 4 | Architecture: all 5 | Installed-Size: 2676 6 | Depends: bash, python (>=2.4), python-wxgtk2.8, python-imaging (>=1.1.4), python-opengl (>=2.0.1), python-opengl (<<3) 7 | Provides: overlayeditor 8 | Maintainer: Jonathan Harris 9 | Description: X-Plane DSF overlay editor 10 | This application edits DSF overlay scenery packages 11 | for X-Plane 8.30 or later. 12 | -------------------------------------------------------------------------------- /linux/overlayeditor: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | exec -a overlayeditor python -OO `dirname $0`/../lib/overlayeditor/OverlayEditor.py 3 | -------------------------------------------------------------------------------- /linux/overlayeditor.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Encoding=UTF-8 3 | Name=OverlayEditor 4 | Comment=X-Plane DSF overlay editor 5 | Exec=overlayeditor 6 | Icon=overlayeditor 7 | Terminal=false 8 | Type=Application 9 | StartupNotify=true 10 | Categories=GNOME;GTK;Graphics 11 | -------------------------------------------------------------------------------- /linux/overlayeditor.spec: -------------------------------------------------------------------------------- 1 | Summary: X-Plane DSF overlay editor 2 | Name: overlayeditor 3 | Version: %{version} 4 | Release: %{release} 5 | License: Creative Commons Attribution-NonCommercial-ShareAlike 3.0 6 | Group: Amusements/Games 7 | URL: http://marginal.org.uk/x-planescenery 8 | Vendor: Jonathan Harris 9 | Prefix: /usr/local 10 | #Suse: python-wxGTK provides wxPython 11 | #Fedora: PyOpenGL provides python-opengl 12 | Requires: bash, python >= 2.4, wxPython >= 2.6, python-imaging >= 1.1.4, python-opengl >= 2.0.1, python-opengl < 3 13 | BuildArch: noarch 14 | 15 | %description 16 | This application edits DSF overlay scenery packages 17 | for X-Plane 8.30 or later. 18 | 19 | %files 20 | %defattr(644,root,root,755) 21 | %attr(755,root,root) /usr/local/bin/overlayeditor 22 | /usr/local/lib/overlayeditor 23 | %doc /usr/local/lib/overlayeditor/OverlayEditor.html 24 | %attr(755,root,root) /usr/local/lib/overlayeditor/linux/DSFTool 25 | 26 | 27 | %post 28 | # see http://standards.freedesktop.org/basedir-spec/latest/ar01s03.html 29 | DESKDIR=`echo $XDG_DATA_DIRS|sed -e s/:.*//` 30 | if [ ! "$DESKDIR" ]; then 31 | if [ -d /usr/local/share/applications ]; then 32 | DESKDIR=/usr/local/share; 33 | elif [ -d /usr/share/applications ]; then 34 | DESKDIR=/usr/share; 35 | elif [ -d /opt/kde3/share/applications ]; then 36 | DESKDIR=/opt/kde3/share; 37 | else 38 | DESKDIR=$RPM_INSTALL_PREFIX/share; 39 | fi; 40 | fi 41 | mkdir -p "$DESKDIR/applications" 42 | cp -f "$RPM_INSTALL_PREFIX/lib/overlayeditor/overlayeditor.desktop" "$DESKDIR/applications/overlayeditor.desktop" 43 | 44 | # KDE<3.5.5 ignores XDG_DATA_DIRS - http://bugs.kde.org/show_bug.cgi?id=97776 45 | if [ -d /opt/kde3/share/icons/hicolor ]; then 46 | ICONDIR=/opt/kde3/share/icons/hicolor; # suse 47 | else 48 | ICONDIR=$DESKDIR/icons/hicolor; 49 | fi 50 | mkdir -p "$ICONDIR/48x48/apps" 51 | cp -f "$RPM_INSTALL_PREFIX/lib/overlayeditor/Resources/OverlayEditor.png" "$ICONDIR/48x48/apps/overlayeditor.png" 52 | gtk-update-icon-cache -f -q -t $ICONDIR &>/dev/null 53 | exit 0 # ignore errors from updating icon cache 54 | 55 | 56 | %postun 57 | DESKDIR=`echo $XDG_DATA_DIRS|sed -e s/:.*//` 58 | rm -f "$DESKDIR/applications/overlayeditor.desktop" 59 | rm -f /usr/local/share/applications/overlayeditor.desktop 60 | rm -f /usr/share/applications/overlayeditor.desktop 61 | rm -f /opt/kde3/share/applications/overlayeditor.desktop 62 | rm -f /usr/local/share/icons/hicolor/48x48/apps/overlayeditor.png 63 | rm -f /usr/share/icons/hicolor/48x48/apps/overlayeditor.png 64 | rm -f /opt/kde3/share/icons/hicolor/48x48/apps/overlayeditor.png 65 | exit 0 # ignore errors from updating icon cache 66 | -------------------------------------------------------------------------------- /linux/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | gtk-update-icon-cache -f -q -t /usr/local/share/icons/hicolor &>/dev/null 3 | exit 0 # ignore errors from updating icon cache 4 | -------------------------------------------------------------------------------- /lock.py: -------------------------------------------------------------------------------- 1 | from sys import platform 2 | import wx 3 | 4 | from MessageBox import myCreateStdDialogButtonSizer 5 | 6 | 7 | class Locked: 8 | OBJ=1 9 | FAC=2 10 | FOR=4 11 | POL=8 12 | ORTHO=16 13 | UNKNOWN=32 14 | POLYGON=FAC|FOR|POL|ORTHO|UNKNOWN 15 | NET=64 16 | EXCLUSION=128 17 | 18 | 19 | class LockDialog(wx.Dialog): 20 | 21 | def __init__(self, parent, id, title): 22 | wx.Dialog.__init__(self, parent, id, title) 23 | if platform=='darwin': # Default is too big on Mac 24 | self.SetWindowVariant(wx.WINDOW_VARIANT_SMALL) 25 | 26 | self.canvas=parent.canvas 27 | 28 | panel1 = wx.Panel(self,-1) 29 | grid1 = wx.FlexGridSizer(0, 4, 6, 6) 30 | grid1.AddGrowableCol(3, proportion=1) 31 | 32 | self.object = wx.CheckBox(panel1, -1) 33 | if self.canvas.locked&Locked.OBJ: self.object.SetValue(True) 34 | grid1.Add(self.object) 35 | grid1.Add(wx.StaticBitmap(panel1, -1, wx.Bitmap("Resources/obj.png", wx.BITMAP_TYPE_PNG))) 36 | grid1.Add([0,0]) 37 | grid1.Add(wx.StaticText(panel1, -1, '3D objects')) 38 | 39 | self.polygon= wx.CheckBox(panel1, -1, style=wx.CHK_3STATE) 40 | if self.canvas.locked&Locked.POLYGON==Locked.POLYGON: 41 | self.polygon.SetValue(True) 42 | elif self.canvas.locked&Locked.POLYGON: 43 | self.polygon.Set3StateValue(wx.CHK_UNDETERMINED) 44 | grid1.Add(self.polygon) 45 | grid1.Add(wx.StaticBitmap(panel1, -1, wx.Bitmap("Resources/unknown.png", wx.BITMAP_TYPE_PNG))) 46 | grid1.Add([0,0]) 47 | grid1.Add(wx.StaticText(panel1, -1, 'Polygons')) 48 | 49 | self.facade = wx.CheckBox(panel1, -1) 50 | if self.canvas.locked&Locked.FAC: self.facade.SetValue(True) 51 | grid1.Add([0,0]) 52 | grid1.Add(self.facade) 53 | grid1.Add(wx.StaticBitmap(panel1, -1, wx.Bitmap("Resources/fac.png", wx.BITMAP_TYPE_PNG))) 54 | grid1.Add(wx.StaticText(panel1, -1, 'Facades')) 55 | 56 | self.forest = wx.CheckBox(panel1, -1) 57 | if self.canvas.locked&Locked.FOR: self.forest.SetValue(True) 58 | grid1.Add([0,0]) 59 | grid1.Add(self.forest) 60 | grid1.Add(wx.StaticBitmap(panel1, -1, wx.Bitmap("Resources/for.png", wx.BITMAP_TYPE_PNG))) 61 | grid1.Add(wx.StaticText(panel1, -1, 'Forests')) 62 | 63 | self.draped = wx.CheckBox(panel1, -1) 64 | if self.canvas.locked&Locked.POL: self.draped.SetValue(True) 65 | grid1.Add([0,0]) 66 | grid1.Add(self.draped) 67 | grid1.Add(wx.StaticBitmap(panel1, -1, wx.Bitmap("Resources/pol.png", wx.BITMAP_TYPE_PNG))) 68 | grid1.Add(wx.StaticText(panel1, -1, 'Draped')) 69 | 70 | self.ortho = wx.CheckBox(panel1, -1) 71 | if self.canvas.locked&Locked.ORTHO: self.ortho.SetValue(True) 72 | grid1.Add([0,0]) 73 | grid1.Add(self.ortho) 74 | grid1.Add(wx.StaticBitmap(panel1, -1, wx.Bitmap("Resources/ortho.png", wx.BITMAP_TYPE_PNG))) 75 | grid1.Add(wx.StaticText(panel1, -1, 'Orthophotos')) 76 | 77 | self.unknown = wx.CheckBox(panel1, -1) 78 | if self.canvas.locked&Locked.UNKNOWN: self.unknown.SetValue(True) 79 | grid1.Add([0,0]) 80 | grid1.Add(self.unknown) 81 | grid1.Add(wx.StaticBitmap(panel1, -1, wx.Bitmap("Resources/unknown.png", wx.BITMAP_TYPE_PNG))) 82 | grid1.Add(wx.StaticText(panel1, -1, 'Other')) 83 | 84 | self.network = wx.CheckBox(panel1, -1) 85 | if self.canvas.locked&Locked.NET: self.network.SetValue(True) 86 | grid1.Add(self.network) 87 | grid1.Add(wx.StaticBitmap(panel1, -1, wx.Bitmap("Resources/net.png", wx.BITMAP_TYPE_PNG))) 88 | grid1.Add([0,0]) 89 | grid1.Add(wx.StaticText(panel1, -1, 'Networks')) 90 | 91 | self.exclusion= wx.CheckBox(panel1, -1) 92 | if self.canvas.locked&Locked.EXCLUSION: self.exclusion.SetValue(True) 93 | grid1.Add(self.exclusion) 94 | grid1.Add(wx.StaticBitmap(panel1, -1, wx.Bitmap("Resources/exc.png", wx.BITMAP_TYPE_PNG))) 95 | grid1.Add([0,0]) 96 | grid1.Add(wx.StaticText(panel1, -1, 'Exclusions')) 97 | 98 | panel1.SetSizer(grid1) 99 | box2=myCreateStdDialogButtonSizer(self, wx.OK|wx.CANCEL) 100 | box0 = wx.BoxSizer(wx.VERTICAL) 101 | box0.Add(panel1, 0, wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND, 10) 102 | box0.Add(box2, 0, wx.ALL|wx.EXPAND, 10) 103 | self.SetSizerAndFit(box0) 104 | 105 | wx.EVT_BUTTON(self, wx.ID_OK, self.OnOK) 106 | wx.EVT_CHECKBOX(self, self.polygon.GetId(), self.OnPolygons) 107 | wx.EVT_CHECKBOX(self, self.facade.GetId(), self.OnPolygon) 108 | wx.EVT_CHECKBOX(self, self.forest.GetId(), self.OnPolygon) 109 | wx.EVT_CHECKBOX(self, self.draped.GetId(), self.OnPolygon) 110 | wx.EVT_CHECKBOX(self, self.ortho.GetId(), self.OnPolygon) 111 | wx.EVT_CHECKBOX(self, self.unknown.GetId(), self.OnPolygon) 112 | 113 | 114 | def OnPolygons(self, event): 115 | val=event.GetEventObject().GetValue() 116 | self.facade.SetValue(val) 117 | self.forest.SetValue(val) 118 | self.draped.SetValue(val) 119 | self.ortho.SetValue(val) 120 | self.unknown.SetValue(val) 121 | 122 | def OnPolygon(self, event): 123 | if self.facade.GetValue() and self.forest.GetValue() and self.draped.GetValue() and self.ortho.GetValue() and self.unknown.GetValue(): 124 | self.polygon.SetValue(True) 125 | elif not (self.facade.GetValue() or self.forest.GetValue() or self.draped.GetValue() or self.ortho.GetValue() or self.unknown.GetValue()): 126 | self.polygon.SetValue(False) 127 | else: 128 | self.polygon.Set3StateValue(wx.CHK_UNDETERMINED) 129 | 130 | def OnOK(self, event): 131 | self.canvas.locked=(0 | (self.object.GetValue() and Locked.OBJ) | (self.facade.GetValue() and Locked.FAC) | (self.forest.GetValue() and Locked.FOR) | (self.draped.GetValue() and Locked.POL) | (self.ortho.GetValue() and Locked.ORTHO) | (self.unknown.GetValue() and Locked.UNKNOWN) | (self.network.GetValue() and Locked.NET) | (self.exclusion.GetValue() and Locked.EXCLUSION)) 132 | self.EndModal(wx.ID_OK) 133 | -------------------------------------------------------------------------------- /palette.py: -------------------------------------------------------------------------------- 1 | from sys import platform 2 | import wx 3 | 4 | from os.path import dirname, exists, join 5 | 6 | from clutterdef import ClutterDefFactory, PolygonDef, ExcludeDef, NetworkDef, KnownDefs, UnknownDefs 7 | from MessageBox import myMessageBox 8 | 9 | 10 | # 2.3 version of case-insensitive sort 11 | # 2.4-only version is faster: sort(cmp=lambda x,y: cmp(x.lower(), y.lower())) 12 | def sortfolded(seq): 13 | seq.sort(lambda x,y: cmp(x.lower(), y.lower())) 14 | 15 | 16 | class PaletteEntry: 17 | 18 | def __init__(self, file): 19 | self.file=file 20 | self.multiple=False 21 | 22 | 23 | class PaletteListBox(wx.VListBox): 24 | 25 | def __init__(self, parent, id, style, tabname, tabno, objects, pkgdir): 26 | if platform=='win32': style|=wx.ALWAYS_SHOW_SB # fails on GTK 27 | wx.VListBox.__init__(self, parent, id, style=style) 28 | self.font=wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT) 29 | if platform!='win32': # Default is too big on Mac & Linux 30 | self.SetWindowVariant(wx.WINDOW_VARIANT_SMALL) 31 | if platform.startswith('linux'): 32 | self.font.SetPointSize(8) 33 | self.imgs=parent.imgs 34 | self.actfg=wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT) 35 | self.actbg=wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHT) 36 | self.inafg=wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUTEXT) 37 | self.inabg=wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENU) 38 | (x,self.height)=self.GetTextExtent("Mq") 39 | self.height=max(13,self.height) 40 | self.indent=4 41 | self.pkgdir=pkgdir 42 | self.populate(parent, tabname, tabno, objects) 43 | 44 | def populate(self, parent, tabname, tabno, objects): 45 | self.choices=[] 46 | names=objects.keys() 47 | for name,entry in objects.iteritems(): 48 | realname=name 49 | ext=name[-4:].lower() 50 | if tabname==NetworkDef.TABNAME: 51 | imgno=6 52 | elif tabname==ExcludeDef.TABNAME: 53 | imgno=7 54 | elif ext in UnknownDefs: 55 | imgno=5 56 | elif name in parent.bad: 57 | imgno=14 58 | elif ext==PolygonDef.DRAPED: 59 | imgno=3 60 | if tabno==0 and self.pkgdir: 61 | # find orthos - assume library objects aren't 62 | try: 63 | h=file(join(self.pkgdir,entry.file), 'rU') 64 | for line in h: 65 | line=line.strip() 66 | if line.startswith('TEXTURE_NOWRAP') or line.startswith('TEXTURE_LIT_NOWRAP'): 67 | imgno=4 68 | break 69 | elif line.startswith('TEXTURE'): 70 | break 71 | h.close() 72 | except: 73 | pass 74 | elif ext in KnownDefs: 75 | imgno=KnownDefs.index(ext) 76 | else: 77 | imgno=14 # wtf? 78 | if tabname in [NetworkDef.TABNAME, ExcludeDef.TABNAME]: 79 | pass 80 | elif not self.pkgdir: 81 | # library object 82 | if name.startswith('/'): name=name[1:] 83 | if name.startswith('lib/'): name=name[4:] 84 | if name.startswith(tabname+'/'): name=name[len(tabname)+1:] 85 | name=name[:-4] 86 | elif name.lower().startswith('objects/') and name[8:] not in names: 87 | name=name[8:-4] 88 | elif name.lower().startswith('custom objects/') and name[15:] not in names: 89 | name=name[15:-4] 90 | else: 91 | name=name[:-4] 92 | if entry.multiple: imgno+=8 93 | self.choices.append((imgno, name, realname)) 94 | self.SetItemCount(len(self.choices)) 95 | 96 | # sort according to display name and set up quick lookup 97 | self.choices.sort(lambda x,y: cmp(x[1].lower(), y[1].lower())) 98 | for i in range(len(self.choices)): 99 | (imgno, name, realname)=self.choices[i] 100 | if tabno==0 or realname not in parent.lookup: 101 | # per-package objects take precedence 102 | parent.lookup[realname]=(tabno,i) 103 | 104 | def OnMeasureItem(self, n): 105 | return self.height 106 | 107 | def OnDrawItem(self, dc, rect, n): 108 | if platform!='darwin': 109 | dc.SetFont(self.font) # wtf? 110 | if self.GetSelection()==n: 111 | dc.SetTextForeground(self.actfg) 112 | else: 113 | dc.SetTextForeground(self.inafg) 114 | (imgno, name, realname)=self.choices[n] 115 | self.imgs.Draw(imgno, dc, rect.x+self.indent, rect.y, 116 | wx.IMAGELIST_DRAW_TRANSPARENT, True) 117 | dc.DrawText(name, rect.x+12+2*self.indent, rect.y) 118 | 119 | class PaletteChoicebook(wx.Choicebook): 120 | 121 | def __init__(self, parent, frame): 122 | self.frame=frame 123 | 124 | wx.Choicebook.__init__(self, parent, wx.ID_ANY, style=wx.CHB_TOP) 125 | #if platform=='darwin': # Default is too big on Mac 126 | # self.SetWindowVariant(wx.WINDOW_VARIANT_MINI) 127 | self.last=(-1,None) 128 | self.lists=[] # child listboxs 129 | self.lookup={} # name->(tabno,index) 130 | self.bad={} # name is bad 131 | self.imgs=wx.ImageList(12,12,True,0) 132 | # must be in same order as KnownDefs 133 | self.imgs.Add(wx.Bitmap("Resources/obj.png", wx.BITMAP_TYPE_PNG)) 134 | self.imgs.Add(wx.Bitmap("Resources/fac.png", wx.BITMAP_TYPE_PNG)) 135 | self.imgs.Add(wx.Bitmap("Resources/for.png", wx.BITMAP_TYPE_PNG)) 136 | self.imgs.Add(wx.Bitmap("Resources/pol.png", wx.BITMAP_TYPE_PNG)) 137 | self.imgs.Add(wx.Bitmap("Resources/ortho.png", wx.BITMAP_TYPE_PNG)) 138 | self.imgs.Add(wx.Bitmap("Resources/unknown.png", wx.BITMAP_TYPE_PNG)) 139 | self.imgs.Add(wx.Bitmap("Resources/net.png", wx.BITMAP_TYPE_PNG)) 140 | self.imgs.Add(wx.Bitmap("Resources/exc.png", wx.BITMAP_TYPE_PNG)) 141 | self.imgs.Add(wx.Bitmap("Resources/objs.png", wx.BITMAP_TYPE_PNG)) 142 | self.imgs.Add(wx.Bitmap("Resources/facs.png", wx.BITMAP_TYPE_PNG)) 143 | self.imgs.Add(wx.Bitmap("Resources/fors.png", wx.BITMAP_TYPE_PNG)) 144 | self.imgs.Add(wx.Bitmap("Resources/pols.png", wx.BITMAP_TYPE_PNG)) 145 | self.imgs.Add(wx.Bitmap("Resources/orthos.png", wx.BITMAP_TYPE_PNG)) 146 | self.imgs.Add(wx.Bitmap("Resources/unknowns.png", wx.BITMAP_TYPE_PNG)) 147 | self.imgs.Add(wx.Bitmap("Resources/bad.png", wx.BITMAP_TYPE_PNG)) # bad assumed below to be last 148 | wx.EVT_KEY_DOWN(self, self.OnKeyDown) # appears to do nowt on Windows 149 | if 'GetChoiceCtrl' in dir(self): # not available on wxMac 2.5 150 | if platform=='win32': 151 | self.GetChoiceCtrl().SetWindowVariant(wx.WINDOW_VARIANT_LARGE) 152 | wx.EVT_KEY_DOWN(self.GetChoiceCtrl(), self.OnKeyDown) 153 | 154 | def OnKeyDown(self, event): 155 | # Override & manually propagate 156 | self.frame.OnKeyDown(event) 157 | event.Skip(False) 158 | 159 | def OnChoice(self, event): 160 | #print "choice" 161 | l=event.GetEventObject() 162 | (imgno, name, realname)=l.choices[l.GetSelection()] 163 | self.frame.palette.set(realname) 164 | self.frame.canvas.clearsel() 165 | self.frame.statusbar.SetStatusText("", 2) 166 | self.frame.toolbar.EnableTool(wx.ID_DELETE, False) 167 | if self.frame.menubar: self.frame.menubar.Enable(wx.ID_DELETE, False) 168 | event.Skip() 169 | 170 | def flush(self): 171 | if len(self.lists): self.SetSelection(0) # reduce flicker 172 | for i in range(len(self.lists)-1,-1,-1): 173 | self.DeletePage(i) 174 | self.lists=[] 175 | self.lookup={} 176 | self.bad={} 177 | 178 | def load(self, tabname, objects, pkgdir): 179 | #print "load", tabname 180 | tabno=len(self.lists) 181 | l=PaletteListBox(self, -1, wx.LB_SINGLE|wx.VSCROLL, tabname, tabno, objects, pkgdir) 182 | self.lists.append(l) 183 | self.AddPage(l, tabname) 184 | wx.EVT_LISTBOX(self, l.GetId(), self.OnChoice) 185 | wx.EVT_KEY_DOWN(l, self.OnKeyDown) 186 | 187 | def add(self, name, bad): 188 | if __debug__: print "cbadd", name, bad 189 | # Add to objects tab - assumes that this is first tab 190 | if bad: 191 | if name in self.bad: 192 | return # already bad 193 | self.bad[name]=True 194 | 195 | l=self.lists[0] 196 | lookup=self.frame.canvas.lookup 197 | objects=dict([(realname, lookup[realname]) for (imgno, foo, realname) in l.choices]) 198 | objects[name]=lookup[name] 199 | l.populate(self, 'Objects', 0, objects) 200 | self.Refresh() 201 | 202 | if not bad: 203 | # Select added name 204 | self.set(name) 205 | self.frame.canvas.clearsel() 206 | self.frame.statusbar.SetStatusText("", 2) 207 | self.frame.toolbar.EnableTool(wx.ID_DELETE, False) 208 | if self.frame.menubar: 209 | self.frame.menubar.Enable(wx.ID_DELETE, False) 210 | 211 | def get(self): 212 | for l in self.lists: 213 | if l.GetSelection()!=-1: 214 | #print "get", l.choices[l.GetSelection()] 215 | (imgno, name, realname)=l.choices[l.GetSelection()] 216 | return realname 217 | #print "get None" 218 | return None 219 | 220 | def set(self, name): 221 | # Called from parent Palette or from OnChoice 222 | #print "cbset", name 223 | if name in self.lookup: 224 | (ontab,ind)=self.lookup[name] 225 | for tab in range(len(self.lists)): 226 | if tab!=ontab: self.lists[tab].SetSelection(-1) 227 | # Setting causes EVT_NOTEBOOK_PAGE_* 228 | if self.GetSelection()!=ontab: self.SetSelection(ontab) 229 | l=self.lists[ontab] 230 | l.SetSelection(ind) 231 | self.frame.toolbar.EnableTool(wx.ID_ADD, True) 232 | if self.frame.menubar: self.frame.menubar.Enable(wx.ID_ADD, True) 233 | else: 234 | # no key, or listed in DSF but not present - eg unrecognised poly 235 | self.lists[self.GetSelection()].SetSelection(-1) 236 | self.frame.toolbar.EnableTool(wx.ID_ADD, False) 237 | if self.frame.menubar: self.frame.menubar.Enable(wx.ID_ADD, False) 238 | 239 | def markbad(self): 240 | # mark current selection as bad 241 | for l in self.lists: 242 | i=l.GetSelection() 243 | if i!=-1: 244 | (imgno, name, realname)=l.choices[i] 245 | if realname in self.bad: 246 | return # already bad 247 | self.bad[realname]=True 248 | l.choices[i]=(14, name, realname) 249 | self.Refresh() 250 | break 251 | else: 252 | assert(0) # not found - wtf! 253 | return 254 | 255 | 256 | class Palette(wx.SplitterWindow): 257 | 258 | def __init__(self, parent, frame): 259 | self.frame=frame 260 | self.lastkey=None 261 | self.previewkey=self.previewbmp=self.previewimg=self.previewsize=None 262 | self.sashsize=4 263 | wx.SplitterWindow.__init__(self, parent, wx.ID_ANY, 264 | style=wx.SP_3DSASH|wx.SP_NOBORDER|wx.SP_LIVE_UPDATE) 265 | self.SetWindowStyle(self.GetWindowStyle() & ~wx.TAB_TRAVERSAL) # wx.TAB_TRAVERSAL is set behind our backs - this fucks up cursor keys 266 | self.cb=PaletteChoicebook(self, frame) 267 | self.preview=wx.Panel(self, wx.ID_ANY, style=wx.FULL_REPAINT_ON_RESIZE) 268 | self.SetMinimumPaneSize(1) 269 | self.SplitHorizontally(self.cb, self.preview) 270 | self.lastheight=self.GetSize().y 271 | wx.EVT_SIZE(self, self.OnSize) 272 | wx.EVT_KEY_DOWN(self.preview, self.OnKeyDown) 273 | wx.EVT_SPLITTER_SASH_POS_CHANGING(self, self.GetId(), self.OnSashPositionChanging) 274 | wx.EVT_PAINT(self.preview, self.OnPaint) 275 | 276 | def glInit(self): 277 | self.sashsize=self.GetClientSize()[1]-(self.cb.GetClientSize()[1]+self.preview.GetClientSize()[1]) 278 | #print "sashsize", self.sashsize, self.GetSashSize(), self.preview.GetClientSize() 279 | self.SetSashPosition(self.GetClientSize()[1]-self.preview.GetClientSize()[0]-self.sashsize, True) 280 | 281 | def OnSize(self, event): 282 | # emulate sash gravity = 1.0 283 | delta=event.GetSize().y-self.lastheight 284 | pos=self.GetSashPosition()+delta 285 | if pos<100: pos=100 286 | self.SetSashPosition(pos, False) 287 | self.lastheight=event.GetSize().y 288 | event.Skip() 289 | 290 | def OnSashPositionChanging(self, event): 291 | if event.GetSashPosition()<100: 292 | # One-way minimum pane size 293 | event.SetSashPosition(100) 294 | elif event.GetEventObject().GetClientSize()[1]-event.GetSashPosition()-self.sashsize<16: 295 | # Spring shut 296 | event.SetSashPosition(event.GetEventObject().GetClientSize()[1]-self.sashsize) 297 | 298 | def OnKeyDown(self, event): 299 | # Override & manually propagate 300 | self.frame.OnKeyDown(event) 301 | event.Skip(False) 302 | 303 | def flush(self): 304 | self.cb.flush() 305 | self.lastkey=None 306 | self.preview.Refresh() 307 | 308 | def load(self, tabname, objects, pkgdir): 309 | self.cb.load(tabname, objects, pkgdir) 310 | 311 | def add(self, name, bad=False): 312 | #print "add", name 313 | # Add to objects tab - assumes that this is first tab 314 | if not bad: self.lastkey=name 315 | self.cb.add(name, bad) 316 | self.preview.Refresh() 317 | 318 | def get(self): 319 | return self.cb.get() 320 | 321 | def set(self, key): 322 | #print "set", key, self.lastkey 323 | if key!=self.lastkey: 324 | self.cb.set(key) 325 | self.lastkey=key 326 | self.preview.Refresh() 327 | 328 | def OnPaint(self, event): 329 | #print "preview", self.lastkey 330 | dc = wx.PaintDC(self.preview) 331 | if dc.GetSize().y<16 or not self.lastkey: 332 | if self.previewkey: 333 | self.previewkey=None 334 | self.previewbmp=None 335 | self.preview.SetBackgroundColour(wx.NullColour) 336 | self.preview.ClearBackground() 337 | return 338 | 339 | # ClearBackground causes *immediate* repaint on wxMac 2.8, 340 | # so hack to suppress recursion 341 | wx.EVT_PAINT(self.preview, None) 342 | 343 | if self.previewkey!=self.lastkey: 344 | # New 345 | self.previewkey=self.lastkey 346 | self.previewimg=self.previewbmp=None 347 | 348 | if not self.previewkey or self.previewkey not in self.frame.canvas.lookup: 349 | self.preview.SetBackgroundColour(wx.NullColour) 350 | self.preview.ClearBackground() 351 | wx.EVT_PAINT(self.preview, self.OnPaint) 352 | return # unknown object - can't do anything 353 | 354 | # Look for built-in screenshot 355 | newfile=self.previewkey.replace('/', '_')[:-3]+'jpg' 356 | if newfile[0]=='_': newfile=newfile[1:] 357 | newfile=join('Resources', 'previews', newfile) 358 | try: 359 | if exists(newfile): 360 | self.previewimg=wx.Image(newfile, wx.BITMAP_TYPE_JPEG) 361 | except: 362 | pass 363 | 364 | # Look for library screenshot - .jpg, picture.png or screenshot.jpg 365 | if not self.previewimg: 366 | newfile=self.frame.canvas.lookup[self.previewkey].file[:-3]+'jpg' 367 | try: 368 | if exists(newfile): 369 | self.previewimg=wx.Image(newfile, wx.BITMAP_TYPE_JPEG) 370 | except: 371 | pass 372 | 373 | # X-Plane v9 static aircraft 374 | if not self.previewimg: 375 | newfile=join(dirname(newfile), 'picture.png') 376 | try: 377 | if exists(newfile): 378 | self.previewimg=wx.Image(newfile, wx.BITMAP_TYPE_PNG) 379 | except: 380 | pass 381 | 382 | # OpenSceneryX 383 | if not self.previewimg: 384 | newfile=join(dirname(newfile), 'screenshot.jpg') 385 | try: 386 | if exists(newfile): 387 | self.previewimg=wx.Image(newfile, wx.BITMAP_TYPE_JPEG) 388 | except: 389 | pass 390 | 391 | if not self.previewimg: 392 | # loading clutter can be slow so clear while loading 393 | self.preview.SetBackgroundColour(wx.NullColour) 394 | self.preview.ClearBackground() 395 | 396 | # Display object data 397 | filename=self.frame.canvas.lookup[self.previewkey].file 398 | try: 399 | if filename in self.frame.canvas.defs: 400 | definition=self.frame.canvas.defs[filename] 401 | else: 402 | self.frame.canvas.defs[filename]=definition=ClutterDefFactory(filename, self.frame.canvas.vertexcache) 403 | self.previewimg=definition.preview(self.frame.canvas, self.frame.canvas.vertexcache) 404 | except: 405 | self.cb.markbad() 406 | 407 | if self.previewimg: 408 | # rescale if necessary 409 | if (dc.GetSize().x >= self.previewimg.GetWidth() and 410 | dc.GetSize().y >= self.previewimg.GetHeight()): 411 | scale=None 412 | newsize=(self.previewimg.GetWidth(), 413 | self.previewimg.GetHeight()) 414 | else: 415 | scale=min(float(dc.GetSize().x)/self.previewimg.GetWidth(), 416 | float(dc.GetSize().y)/self.previewimg.GetHeight()) 417 | newsize=(int(scale*self.previewimg.GetWidth()), 418 | int(scale*self.previewimg.GetHeight())) 419 | if not self.previewbmp or newsize!=self.previewsize: 420 | self.previewsize=newsize 421 | self.preview.SetBackgroundColour(wx.Colour(self.previewimg.GetRed(0,0), self.previewimg.GetGreen(0,0), self.previewimg.GetBlue(0,0))) 422 | self.preview.ClearBackground() 423 | if scale: 424 | if 'IMAGE_QUALITY_HIGH' in dir(wx): # not in 2.6 or earlier 425 | self.previewbmp=wx.BitmapFromImage(self.previewimg.Scale(newsize[0], newsize[1], wx.IMAGE_QUALITY_HIGH)) 426 | else: 427 | self.previewbmp=wx.BitmapFromImage(self.previewimg.Scale(newsize[0], newsize[1])) 428 | else: 429 | self.previewbmp=wx.BitmapFromImage(self.previewimg) 430 | dc.DrawBitmap(self.previewbmp, 431 | (dc.GetSize().x-self.previewsize[0])/2, 432 | (dc.GetSize().y-self.previewsize[1])/2, True) 433 | else: 434 | self.preview.SetBackgroundColour(wx.NullColour) 435 | self.preview.ClearBackground() 436 | 437 | wx.EVT_PAINT(self.preview, self.OnPaint) 438 | 439 | -------------------------------------------------------------------------------- /postprof.py: -------------------------------------------------------------------------------- 1 | import pstats 2 | import os.path 3 | import sys 4 | 5 | #sys.stdout=open(os.path.splitext(sys.argv[1])[0]+'.txt','a') 6 | s=pstats.Stats(sys.argv[1]) 7 | s.strip_dirs() 8 | s.sort_stats('cumulative','time','nfl') 9 | s.print_stats() 10 | s.print_callers() 11 | -------------------------------------------------------------------------------- /prefs.py: -------------------------------------------------------------------------------- 1 | import codecs 2 | from os import getenv, mkdir 3 | from os.path import dirname, isdir, join, expanduser 4 | from sys import platform, getfilesystemencoding 5 | 6 | from version import appname, appversion 7 | 8 | 9 | class Prefs: 10 | TERRAIN=1 11 | ELEVATION=2 12 | DMS=4 13 | NETWORK=8 14 | REDRAW=TERRAIN|ELEVATION|NETWORK # options that cause meshlist to be recalculated 15 | 16 | def __init__(self): 17 | self.filename=None 18 | self.xplane=None 19 | self.package=None 20 | self.options=Prefs.TERRAIN 21 | self.packageprops={} 22 | 23 | if platform=='win32': 24 | from _winreg import OpenKey, QueryValueEx, HKEY_CURRENT_USER, REG_SZ, REG_EXPAND_SZ 25 | try: 26 | handle=OpenKey(HKEY_CURRENT_USER, 'Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders') 27 | (v,t)=QueryValueEx(handle, 'AppData') 28 | handle.Close() 29 | if t==REG_EXPAND_SZ: 30 | dirs=v.rstrip('\0').decode('mbcs').strip().split('\\') 31 | for i in range(len(dirs)): 32 | if dirs[i][0]==dirs[i][-1]=='%': 33 | dirs[i]=getenv(dirs[i][1:-1],dirs[i]).decode('mbcs') 34 | v='\\'.join(dirs) 35 | if t in [REG_SZ,REG_EXPAND_SZ] and isdir(v): 36 | self.filename=join(v,'marginal.org',appname) 37 | if not isdir(dirname(self.filename)): 38 | mkdir(dirname(self.filename)) 39 | except: 40 | pass 41 | if not self.filename: 42 | self.filename=join(expanduser('~').decode(getfilesystemencoding() or 'utf-8'), '.%s' % appname.lower()) 43 | self.read() 44 | 45 | def read(self): 46 | try: 47 | handle=codecs.open(self.filename, 'rU', 'utf-8') 48 | self.xplane=handle.readline().strip() 49 | handle.readline().strip() # skip package 50 | #if self.package=='None': self.package=None 51 | for line in handle: 52 | if '=' in line: 53 | pkg=line[:line.index('=')] 54 | if pkg=='*options': 55 | self.options=int(line[9:]) 56 | else: 57 | line=line[len(pkg)+2:] 58 | f=line[:line.index('"')] 59 | c=line[len(f)+1:].split() 60 | self.packageprops[pkg]=(f, float(c[0]), float(c[1]), int(c[2]), float(c[3]), float(c[4]), int(c[5])) 61 | handle.close() 62 | except: 63 | pass 64 | 65 | def write(self): 66 | try: 67 | handle=codecs.open(self.filename, 'wt', 'utf-8') 68 | handle.write('%s\n%s\n*options=%d\n' % ( 69 | self.xplane, self.package, self.options)) 70 | for pkg, (f,lat,lon,hdg,w,h,o) in self.packageprops.iteritems(): 71 | if not pkg: continue # unsaved Untitled 72 | handle.write('%s="%s" %10.6f %11.6f %3d %8.2f %8.2f %2d\n' % ( 73 | pkg, f,lat,lon,hdg,w,h,o)) 74 | handle.close() 75 | except: 76 | pass 77 | -------------------------------------------------------------------------------- /setup: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | VERSION=`python -c "from version import appversion; print '%4.2f' % appversion"` 4 | VER=`python -c "from version import appversion; print int(round(appversion*100,0))"` 5 | APPNAME=`python -c "from version import appname; print appname"` 6 | APPLINUX=`python -c "from version import appname; print appname.lower()"` 7 | RELEASE=1 8 | 9 | rm -f ${APPNAME}_${VER}_src.zip 10 | rm -f ${APPLINUX}-$VERSION-$RELEASE.noarch.rpm 11 | rm -f ${APPLINUX}_$VERSION-$RELEASE_all.deb 12 | rm -f ${APPNAME}_${VER}_mac.zip 13 | rm -rf ${APPNAME}.app 14 | 15 | PY='OverlayEditor.py clutter.py clutterdef.py draw.py DSFLib.py files.py fixed8x13.py MessageBox.py lock.py palette.py prefs.py version.py' 16 | DATA='OverlayEditor.html' 17 | RSRC='Resources/*.png Resources/windsock.obj Resources/screenshot.jpg Resources/800library.txt' 18 | PREV='Resources/previews/*.jpg' 19 | 20 | # linux 21 | RPM=/tmp/${APPLINUX} 22 | RPMRT=$RPM/root 23 | rm -rf $RPM 24 | mkdir -p $RPM/BUILD 25 | mkdir -p $RPM/SOURCES 26 | mkdir -p $RPM/SPECS 27 | mkdir -p $RPM/RPMS/noarch 28 | mkdir -p $RPMRT/usr/local/bin 29 | mkdir -p $RPMRT/usr/local/lib/${APPLINUX}/Resources 30 | mkdir -p $RPMRT/usr/local/lib/${APPLINUX}/Resources/previews 31 | mkdir -p $RPMRT/usr/local/lib/${APPLINUX}/linux 32 | mkdir -p $RPMRT/usr/local/lib/${APPLINUX}/win32 33 | cp linux/${APPLINUX}.desktop $RPMRT/usr/local/lib/${APPLINUX}/ 34 | cp -p linux/${APPLINUX}.spec $RPM/SPECS/ 35 | cp -p linux/${APPLINUX} $RPMRT/usr/local/bin/ 36 | for i in $PY $DATA; do cp -p "$i" $RPMRT/usr/local/lib/${APPLINUX}/; done 37 | for i in $RSRC; do cp -p "$i" $RPMRT/usr/local/lib/${APPLINUX}/Resources/; done 38 | for i in $PREV; do cp -p "$i" $RPMRT/usr/local/lib/${APPLINUX}/Resources/previews/; done 39 | cp -p linux/DSFTool $RPMRT/usr/local/lib/${APPLINUX}/linux/ 40 | rpmbuild -bb --buildroot $RPMRT --define "_topdir $RPM" --define "_unpackaged_files_terminate_build 0" --define "version $VERSION" --define "release $RELEASE" --quiet $RPM/SPECS/${APPLINUX}.spec 41 | mv $RPM/RPMS/noarch/${APPLINUX}-$VERSION-$RELEASE.noarch.rpm . 42 | 43 | # Debian/Ubuntu 44 | mkdir -p $RPMRT/DEBIAN 45 | mkdir -p $RPMRT/usr/local/share/applications 46 | mkdir -p $RPMRT/usr/local/share/icons/hicolor/48x48/apps 47 | cp -p linux/${APPLINUX}.desktop $RPMRT/usr/local/share/applications/ 48 | cp -p Resources/${APPNAME}.png $RPMRT/usr/local/share/icons/hicolor/48x48/apps/${APPLINUX}.png 49 | echo Version: $VERSION-$RELEASE> $RPMRT/DEBIAN/control 50 | cat linux/control >> $RPMRT/DEBIAN/control 51 | cp -p linux/postinst $RPMRT/DEBIAN/ 52 | sudo chown -R 0:0 $RPMRT/* 53 | dpkg-deb -b $RPMRT . # requires gnu-tar 54 | sudo chown -R $USER:staff $RPMRT/* 55 | 56 | # mac 57 | mkdir -p ${APPNAME}.app/Contents/MacOS 58 | for i in $DATA; do cp -p "$i" ${APPNAME}.app/Contents/; done 59 | cp -pr MacOS/* ${APPNAME}.app/Contents/MacOS/ 60 | rm -f ${APPNAME}.app/Contents/MacOS/Info.plist 61 | rm -f ${APPNAME}.app/Contents/MacOS/*.bak 62 | for i in $PY; do cp -p "$i" ${APPNAME}.app/Contents/MacOS/; done 63 | mkdir -p ${APPNAME}.app/Contents/Resources 64 | for i in $RSRC; do cp -p "$i" ${APPNAME}.app/Contents/Resources/; done 65 | mkdir -p ${APPNAME}.app/Contents/Resources/previews 66 | for i in $PREV; do cp -p "$i" ${APPNAME}.app/Contents/Resources/previews/; done 67 | sed s/appversion/$VERSION/ ${APPNAME}.app/Contents/Info.plist 68 | mv ${APPNAME}.app/Contents/MacOS/*.icns ${APPNAME}.app/Contents/Resources/ 69 | mv -f ${APPNAME}.app/Contents/MacOS/*.png ${APPNAME}.app/Contents/Resources/ # overwrite with Mac versions 70 | mv -f ${APPNAME}.app/Contents/MacOS/screenshot.jpg ${APPNAME}.app/Contents/Resources/ 71 | zip -r ${APPNAME}_${VER}_mac.zip ${APPNAME}.app 72 | -------------------------------------------------------------------------------- /todo.txt: -------------------------------------------------------------------------------- 1 | cut / copy / paste + Mac menus 2 | regional variants - eg lib/g8/pol/wet_warm_hill_s.pol: 3 | - Resources\default scenery\900 red terrain\pol\wet_warm_hill_s.pol 4 | - Resources\default scenery\900 world terrain\pol\wet_warm_hill_s.pol 5 | import sceneries - http://forums.x-plane.org/index.php?showtopic=36042 6 | 7 | don't show .ter - eg lib/g8/terrain/temp_city_park.ter 8 | don't import into custom objects for types other than obj 9 | don't look in custom objects for types other than obj 10 | load textures from custom object textures 11 | 12 | fix nopoly - use drawmultielements (1.4) 13 | gettext 14 | don't change position on undo? 15 | display ramp starting points 16 | property dialog, allowing replacement of object or polygon. Lock items? 17 | select multiple in object list - add adds all 18 | import whole package 19 | 20 | palette right click / ctrl-click -> delete, rename 21 | selectall drag problem 22 | .lin 23 | taxilines 24 | drag nodes - undo each changed node 25 | 26 | pyopengl 3 on Unix 27 | 28 | lock objects 29 | Info popup - name, source .obj file / library, layer, source texture, editable location, info.txt (File -> Show Inspector Cmd-I) 30 | Use of control or cmd in Finder for selection drag? 31 | Multiple tiles 32 | Beziers in polygons? - not for .bch, .for, .fac - yes for .lin, .pol, .str 33 | eddn_overlay ? 34 | Object prioritisation 35 | boundary (130) 36 | beaches 37 | distance measurement 38 | -------------------------------------------------------------------------------- /version.py: -------------------------------------------------------------------------------- 1 | appname='OverlayEditor' 2 | appversion=2.05 # Must be numeric 3 | -------------------------------------------------------------------------------- /win32/DSFTool.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/win32/DSFTool.exe -------------------------------------------------------------------------------- /win32/OverlayEditor.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/win32/OverlayEditor.ico -------------------------------------------------------------------------------- /win32/OverlayEditor.nsi: -------------------------------------------------------------------------------- 1 | ; NSIS installation 2 | 3 | ;-------------------------------- 4 | !include "MUI.nsh" 5 | 6 | !define MUI_ABORTWARNING 7 | 8 | SetCompressor /SOLID lzma 9 | RequestExecutionLevel admin 10 | 11 | Name "OverlayEditor $%VERSION%" 12 | Caption "OverlayEditor $%VERSION% Installer" 13 | OutFile "OverlayEditor_$%VER%_win32.exe" 14 | InstallDir "$PROGRAMFILES\OverlayEditor" 15 | BrandingText "http://marginal.org.uk/x-planescenery" 16 | 17 | ; !insertmacro MUI_PAGE_WELCOME 18 | !insertmacro MUI_PAGE_DIRECTORY 19 | !insertmacro MUI_PAGE_INSTFILES 20 | !insertmacro MUI_PAGE_FINISH 21 | 22 | ; !insertmacro MUI_UNPAGE_WELCOME 23 | !insertmacro MUI_UNPAGE_CONFIRM 24 | !insertmacro MUI_UNPAGE_INSTFILES 25 | !insertmacro MUI_UNPAGE_FINISH 26 | 27 | !insertmacro MUI_LANGUAGE "English" 28 | 29 | Icon "win32\installer.ico" 30 | UninstallIcon "win32\installer.ico" 31 | 32 | Section "Install" 33 | SetOutPath "$INSTDIR" 34 | File /r dist\* 35 | 36 | Delete "$INSTDIR\OverlayEditor.exe.log" 37 | SetShellVarContext current 38 | Delete "$SMPROGRAMS\OverlayEditor.lnk"; old versions used current user 39 | SetShellVarContext all 40 | CreateShortCut "$SMPROGRAMS\OverlayEditor.lnk" "$INSTDIR\OverlayEditor.exe" 41 | 42 | ; uninstall info 43 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OverlayEditor" "DisplayIcon" "$INSTDIR\OverlayEditor.exe,0" 44 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OverlayEditor" "DisplayName" "OverlayEditor" 45 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OverlayEditor" "DisplayVersion" "$%VERSION%" 46 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OverlayEditor" "InstallLocation" "$INSTDIR" 47 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OverlayEditor" "Publisher" "Jonathan Harris " 48 | WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OverlayEditor" "NoModify" 1 49 | WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OverlayEditor" "NoRepair" 1 50 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OverlayEditor" "UninstallString" "$INSTDIR\uninstall.exe" 51 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OverlayEditor" "URLInfoAbout" "mailto:Jonathan Harris ?subject=OverlayEditor $%VERSION%" 52 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OverlayEditor" "URLUpdateInfo" "http://marginal.org.uk/x-planescenery" 53 | 54 | WriteUninstaller "$INSTDIR\uninstall.exe" 55 | SectionEnd 56 | 57 | 58 | Section "Uninstall" 59 | SetShellVarContext current 60 | Delete "$SMPROGRAMS\OverlayEditor.lnk"; old versions used current user 61 | SetShellVarContext all 62 | Delete "$SMPROGRAMS\OverlayEditor.lnk" 63 | Delete "$INSTDIR\MSVCP71.dll" 64 | Delete "$INSTDIR\MSVCR71.dll" 65 | Delete "$INSTDIR\OverlayEditor.exe" 66 | Delete "$INSTDIR\OverlayEditor.exe.log" 67 | Delete "$INSTDIR\OverlayEditor.html" 68 | Delete "$INSTDIR\uninstall.exe" 69 | RMDir /r "$INSTDIR\Resources" 70 | RMDir /r "$INSTDIR\win32" 71 | RMDir "$INSTDIR" 72 | 73 | DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OverlayEditor" 74 | SectionEnd 75 | -------------------------------------------------------------------------------- /win32/installer.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/win32/installer.ico -------------------------------------------------------------------------------- /win32/installer.pspimage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marginal/OverlayEditor/221dd8f6e3b55d29828fd48ef1e0ad2ced5ad1dd/win32/installer.pspimage -------------------------------------------------------------------------------- /win32/setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | from distutils.core import setup 4 | from os import getcwd, listdir, name 5 | from glob import glob 6 | 7 | import sys 8 | sys.path.insert(0, getcwd()) 9 | 10 | from version import appname, appversion 11 | 12 | 13 | # bogus crud to get WinXP "Visual Styles" 14 | manifest=('\n'+ 15 | '\n'+ 16 | '\n'+ 22 | 'DSF overlay editor.\n'+ 23 | '\n'+ 24 | ' \n'+ 25 | ' \n'+ 33 | ' \n'+ 34 | '\n'+ 35 | '\n') 36 | 37 | if sys.platform=='win32': 38 | # http://www.py2exe.org/ Invoke with: setup.py py2exe 39 | import py2exe 40 | platdata=[('win32', 41 | ['win32/DSFTool.exe', 42 | ]), 43 | ('', 44 | [r'C:\Program Files\Python25\lib\site-packages\wx-2.8-msw-unicode\wx\MSVCP71.dll', 45 | r'C:\WINDOWS\system32\msvcr71.dll', 46 | ]), 47 | ] 48 | 49 | elif sys.platform.lower().startswith('darwin'): 50 | # http://undefined.org/python/py2app.html Invoke with: setup.py py2app 51 | import py2app 52 | platdata=[('MacOS', 53 | ['MacOS/DSFTool', 54 | #'MacOS/OverlayEditor.icns', 55 | ]), 56 | # Include wxPython 2.4 57 | #('../Frameworks', 58 | # ['/usr/local/lib/libwx_mac-2.4.0.rsrc', 59 | # ]), 60 | ] 61 | 62 | res=["Resources/windsock.obj", 63 | "Resources/screenshot.jpg", 64 | "Resources/800library.txt"] 65 | for f in listdir('Resources'): 66 | if f[-4:]=='.png': res.append('Resources/%s' % f) 67 | 68 | setup(name='OverlayEditor', 69 | version=("%4.2f" % appversion), 70 | description='DSF overlay editor', 71 | author='Jonathan Harris', 72 | author_email='x-plane@marginal.org.uk', 73 | url='http://marginal.org.uk/xplanescenery', 74 | data_files=[('', 75 | ['OverlayEditor.html', 76 | ]), 77 | ('Resources', 78 | res), 79 | ('Resources/previews', 80 | glob('Resources/previews/*.jpg') 81 | ), 82 | ] + platdata, 83 | 84 | options = {'py2exe': {'ascii':True, # suppresss encodings? 85 | 'dll_excludes':['w9xpopen.exe'], 86 | 'bundle_files':True, 87 | 'compressed':True, 88 | # http://www.py2exe.org/index.cgi/OptimizingSize 89 | 'excludes':['Carbon', 'tcl', 'Tkinter', 'mx','socket','urllib','webbrowser', 90 | 'curses', 'distutils', 'doctest', 'email', 'hotshot', 'inspect', 'pdb', 'setuptools', 'win32', # Python2.5 91 | 'Numeric', 'dotblas', 'numarray', 'scipy', 'nose'], # Old Numeric stuff 92 | 'packages':['encodings.ascii','encodings.mbcs','encodings.latin_1','encodings.utf_8','encodings.utf_16','encodings.cp437'], 93 | 'optimize':2, 94 | }, 95 | 96 | 'py2app': {'argv_emulation':False, 97 | 'iconfile':'MacOS/OverlayEditor.icns', 98 | 'includes':['wx'], 99 | 'packages':['wx'], 100 | 'frameworks':['wx'], 101 | 'compressed':True, 102 | 'optimize':2, 103 | 'semi_standalone':True, 104 | }, 105 | }, 106 | 107 | # comment out for Mac 108 | zipfile = None, 109 | 110 | # win32 111 | windows = [{'script':'OverlayEditor.py', 112 | 'icon_resources':[(1,'win32/OverlayEditor.ico')], 113 | 'other_resources':[(24,1,manifest)], 114 | }], 115 | 116 | # mac 117 | #app = ['OverlayEditor.py'], 118 | ) 119 | --------------------------------------------------------------------------------