[Scummvm-git-logs] scummvm master -> 8b3cf445d5b629e4bb0cda60e6abf9bd49944b1e

sev- noreply at scummvm.org
Mon Nov 25 23:32:04 UTC 2024


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
35138892c2 GRAPHICS: MACGUI: Use a const pointer for MacPatterns arrays
8b3cf445d5 DIRECTOR: Make more static data read only


Commit: 35138892c2b404663ac00df477e46698f2b65b21
    https://github.com/scummvm/scummvm/commit/35138892c2b404663ac00df477e46698f2b65b21
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2024-11-26T00:32:00+01:00

Commit Message:
GRAPHICS: MACGUI: Use a const pointer for MacPatterns arrays

Changed paths:
    engines/director/director.h
    engines/wage/design.cpp
    engines/wage/world.cpp
    graphics/macgui/macwindow.cpp
    graphics/macgui/macwindowmanager.cpp
    graphics/macgui/macwindowmanager.h


diff --git a/engines/director/director.h b/engines/director/director.h
index d695e48fd14..c75cac152ce 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -40,7 +40,7 @@ namespace Graphics {
 class MacWindowManager;
 struct MacPlotData;
 struct WinCursorGroup;
-typedef Common::Array<byte *> MacPatterns;
+typedef Common::Array<const byte *> MacPatterns;
 
 class ManagedSurface;
 }
diff --git a/engines/wage/design.cpp b/engines/wage/design.cpp
index 781064bb8a0..0b3a657390a 100644
--- a/engines/wage/design.cpp
+++ b/engines/wage/design.cpp
@@ -230,7 +230,7 @@ void drawPixel(int x, int y, int color, void *data) {
 		return;
 	}
 
-	byte *pat = p->patterns->operator[](p->fillType - 1);
+	const byte *pat = p->patterns->operator[](p->fillType - 1);
 
 	if (p->thickness == 1) {
 		if (x >= 0 && x < p->surface->w && y >= 0 && y < p->surface->h) {
@@ -284,7 +284,7 @@ void drawPixelCircle(int x, int y, int color, void *data) {
 		return;
 	}
 
-	byte *pat = p->patterns->operator[](p->fillType - 1);
+	const byte *pat = p->patterns->operator[](p->fillType - 1);
 
 	// Draw circle when thickness is > 1, put a pixel otherwise
 	if (p->thickness == 1) {
diff --git a/engines/wage/world.cpp b/engines/wage/world.cpp
index 0dbe0e61c63..3a939359571 100644
--- a/engines/wage/world.cpp
+++ b/engines/wage/world.cpp
@@ -95,7 +95,7 @@ World::~World() {
 		delete _orderedScenes[i];
 
 	for (uint i = 0; i < _patterns->size(); i++)
-		free(_patterns->operator[](i));
+		free(const_cast<byte *>(_patterns->operator[](i)));
 
 	delete _patterns;
 
diff --git a/graphics/macgui/macwindow.cpp b/graphics/macgui/macwindow.cpp
index 4c4dc4b985e..79069c15c67 100644
--- a/graphics/macgui/macwindow.cpp
+++ b/graphics/macgui/macwindow.cpp
@@ -322,7 +322,7 @@ bool MacWindow::isTitleVisible() {
 }
 
 void MacWindow::drawPattern() {
-	byte *pat = _wm->getPatterns()[_pattern - 1];
+	const byte *pat = _wm->getPatterns()[_pattern - 1];
 	for (int y = 0; y < _composeSurface->h; y++) {
 		for (int x = 0; x < _composeSurface->w; x++) {
 			if (_wm->_pixelformat.bytesPerPixel == 1) {
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index c342c41cae3..5ebe20ff65a 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -767,7 +767,7 @@ void macDrawPixel(int x, int y, int color, void *data) {
 	if (p->fillType > p->patterns->size() || !p->fillType)
 		return;
 
-	byte *pat = p->patterns->operator[](p->fillType - 1);
+	const byte *pat = p->patterns->operator[](p->fillType - 1);
 
 	if (p->thickness == 1) {
 		if (x >= 0 && x < p->surface->w && y >= 0 && y < p->surface->h) {
diff --git a/graphics/macgui/macwindowmanager.h b/graphics/macgui/macwindowmanager.h
index 333c717ccf0..42a22e4ddc9 100644
--- a/graphics/macgui/macwindowmanager.h
+++ b/graphics/macgui/macwindowmanager.h
@@ -112,7 +112,7 @@ class MacFont;
 
 class MacFontManager;
 
-typedef Common::Array<byte *> MacPatterns;
+typedef Common::Array<const byte *> MacPatterns;
 
 struct MacPlotData {
 	Graphics::ManagedSurface *surface;


Commit: 8b3cf445d5b629e4bb0cda60e6abf9bd49944b1e
    https://github.com/scummvm/scummvm/commit/8b3cf445d5b629e4bb0cda60e6abf9bd49944b1e
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2024-11-26T00:32:00+01:00

Commit Message:
DIRECTOR: Make more static data read only

Changed paths:
    engines/director/blank-score.h
    engines/director/castmember/bitmap.cpp
    engines/director/director.h
    engines/director/fonts.cpp
    engines/director/game-quirks.cpp
    engines/director/graphics-data.h
    engines/director/graphics.cpp
    engines/director/lingo/lingo-builtins.cpp
    engines/director/lingo/lingo-bytecode.cpp
    engines/director/lingo/lingo-code.cpp
    engines/director/lingo/lingo-mci.cpp
    engines/director/lingo/lingo-object.cpp
    engines/director/lingo/lingo-object.h
    engines/director/lingo/lingo-patcher.cpp
    engines/director/lingo/lingo-the.cpp
    engines/director/lingo/lingo-utils.cpp
    engines/director/lingo/lingo.h
    engines/director/lingo/lingodec/names.cpp
    engines/director/lingo/lingodec/names.h
    engines/director/lingo/xlibs/aiff.cpp
    engines/director/lingo/xlibs/aiff.h
    engines/director/lingo/xlibs/applecdxobj.cpp
    engines/director/lingo/xlibs/applecdxobj.h
    engines/director/lingo/xlibs/askuser.cpp
    engines/director/lingo/xlibs/askuser.h
    engines/director/lingo/xlibs/backdrop.cpp
    engines/director/lingo/xlibs/backdrop.h
    engines/director/lingo/xlibs/barakeobj.cpp
    engines/director/lingo/xlibs/barakeobj.h
    engines/director/lingo/xlibs/batqt.cpp
    engines/director/lingo/xlibs/batqt.h
    engines/director/lingo/xlibs/bimxobj.cpp
    engines/director/lingo/xlibs/bimxobj.h
    engines/director/lingo/xlibs/blitpict.cpp
    engines/director/lingo/xlibs/blitpict.h
    engines/director/lingo/xlibs/cdromxobj.cpp
    engines/director/lingo/xlibs/cdromxobj.h
    engines/director/lingo/xlibs/closebleedwindowxcmd.cpp
    engines/director/lingo/xlibs/closebleedwindowxcmd.h
    engines/director/lingo/xlibs/colorcursorxobj.cpp
    engines/director/lingo/xlibs/colorcursorxobj.h
    engines/director/lingo/xlibs/colorxobj.cpp
    engines/director/lingo/xlibs/colorxobj.h
    engines/director/lingo/xlibs/consumer.cpp
    engines/director/lingo/xlibs/consumer.h
    engines/director/lingo/xlibs/cursorxobj.cpp
    engines/director/lingo/xlibs/cursorxobj.h
    engines/director/lingo/xlibs/darkenscreen.cpp
    engines/director/lingo/xlibs/darkenscreen.h
    engines/director/lingo/xlibs/dateutil.cpp
    engines/director/lingo/xlibs/dateutil.h
    engines/director/lingo/xlibs/developerStack.cpp
    engines/director/lingo/xlibs/developerStack.h
    engines/director/lingo/xlibs/dialogsxobj.cpp
    engines/director/lingo/xlibs/dialogsxobj.h
    engines/director/lingo/xlibs/dirutil.cpp
    engines/director/lingo/xlibs/dirutil.h
    engines/director/lingo/xlibs/dllglue.cpp
    engines/director/lingo/xlibs/dllglue.h
    engines/director/lingo/xlibs/dpwavi.cpp
    engines/director/lingo/xlibs/dpwavi.h
    engines/director/lingo/xlibs/dpwqtw.cpp
    engines/director/lingo/xlibs/dpwqtw.h
    engines/director/lingo/xlibs/draw.cpp
    engines/director/lingo/xlibs/draw.h
    engines/director/lingo/xlibs/ednox.cpp
    engines/director/lingo/xlibs/ednox.h
    engines/director/lingo/xlibs/eventq.cpp
    engines/director/lingo/xlibs/eventq.h
    engines/director/lingo/xlibs/fadegammadownxcmd.cpp
    engines/director/lingo/xlibs/fadegammadownxcmd.h
    engines/director/lingo/xlibs/fadegammaupxcmd.cpp
    engines/director/lingo/xlibs/fadegammaupxcmd.h
    engines/director/lingo/xlibs/fadegammaxcmd.cpp
    engines/director/lingo/xlibs/fadegammaxcmd.h
    engines/director/lingo/xlibs/fedracul.cpp
    engines/director/lingo/xlibs/fedracul.h
    engines/director/lingo/xlibs/feimasks.cpp
    engines/director/lingo/xlibs/feimasks.h
    engines/director/lingo/xlibs/feiprefs.cpp
    engines/director/lingo/xlibs/feiprefs.h
    engines/director/lingo/xlibs/fileexists.cpp
    engines/director/lingo/xlibs/fileexists.h
    engines/director/lingo/xlibs/fileio.cpp
    engines/director/lingo/xlibs/fileio.h
    engines/director/lingo/xlibs/findereventsxcmd.cpp
    engines/director/lingo/xlibs/findereventsxcmd.h
    engines/director/lingo/xlibs/findfolder.cpp
    engines/director/lingo/xlibs/findfolder.h
    engines/director/lingo/xlibs/findsys.cpp
    engines/director/lingo/xlibs/findsys.h
    engines/director/lingo/xlibs/findwin.cpp
    engines/director/lingo/xlibs/findwin.h
    engines/director/lingo/xlibs/flushxobj.cpp
    engines/director/lingo/xlibs/flushxobj.h
    engines/director/lingo/xlibs/fplayxobj.cpp
    engines/director/lingo/xlibs/fplayxobj.h
    engines/director/lingo/xlibs/fsutil.cpp
    engines/director/lingo/xlibs/fsutil.h
    engines/director/lingo/xlibs/genutils.cpp
    engines/director/lingo/xlibs/genutils.h
    engines/director/lingo/xlibs/getscreenrectsxfcn.cpp
    engines/director/lingo/xlibs/getscreenrectsxfcn.h
    engines/director/lingo/xlibs/getscreensizexfcn.cpp
    engines/director/lingo/xlibs/getscreensizexfcn.h
    engines/director/lingo/xlibs/gpid.cpp
    engines/director/lingo/xlibs/gpid.h
    engines/director/lingo/xlibs/henry.cpp
    engines/director/lingo/xlibs/henry.h
    engines/director/lingo/xlibs/hitmap.cpp
    engines/director/lingo/xlibs/hitmap.h
    engines/director/lingo/xlibs/inixobj.cpp
    engines/director/lingo/xlibs/inixobj.h
    engines/director/lingo/xlibs/instobj.cpp
    engines/director/lingo/xlibs/instobj.h
    engines/director/lingo/xlibs/iscd.cpp
    engines/director/lingo/xlibs/iscd.h
    engines/director/lingo/xlibs/ispippin.cpp
    engines/director/lingo/xlibs/ispippin.h
    engines/director/lingo/xlibs/jitdraw3.cpp
    engines/director/lingo/xlibs/jitdraw3.h
    engines/director/lingo/xlibs/jwxini.cpp
    engines/director/lingo/xlibs/jwxini.h
    engines/director/lingo/xlibs/labeldrvxobj.cpp
    engines/director/lingo/xlibs/labeldrvxobj.h
    engines/director/lingo/xlibs/maniacbg.cpp
    engines/director/lingo/xlibs/maniacbg.h
    engines/director/lingo/xlibs/mapnavigatorxobj.cpp
    engines/director/lingo/xlibs/mapnavigatorxobj.h
    engines/director/lingo/xlibs/memcheckxobj.cpp
    engines/director/lingo/xlibs/memcheckxobj.h
    engines/director/lingo/xlibs/memoryxobj.cpp
    engines/director/lingo/xlibs/memoryxobj.h
    engines/director/lingo/xlibs/misc.cpp
    engines/director/lingo/xlibs/misc.h
    engines/director/lingo/xlibs/miscx.cpp
    engines/director/lingo/xlibs/miscx.h
    engines/director/lingo/xlibs/mmaskxobj.cpp
    engines/director/lingo/xlibs/mmaskxobj.h
    engines/director/lingo/xlibs/mmovie.cpp
    engines/director/lingo/xlibs/mmovie.h
    engines/director/lingo/xlibs/moovxobj.cpp
    engines/director/lingo/xlibs/moovxobj.h
    engines/director/lingo/xlibs/movemousejp.cpp
    engines/director/lingo/xlibs/movemousejp.h
    engines/director/lingo/xlibs/movemousexobj.cpp
    engines/director/lingo/xlibs/movemousexobj.h
    engines/director/lingo/xlibs/movieidxxobj.cpp
    engines/director/lingo/xlibs/movieidxxobj.h
    engines/director/lingo/xlibs/movutils.cpp
    engines/director/lingo/xlibs/movutils.h
    engines/director/lingo/xlibs/mystisle.cpp
    engines/director/lingo/xlibs/mystisle.h
    engines/director/lingo/xlibs/openbleedwindowxcmd.cpp
    engines/director/lingo/xlibs/openbleedwindowxcmd.h
    engines/director/lingo/xlibs/orthoplayxobj.cpp
    engines/director/lingo/xlibs/orthoplayxobj.h
    engines/director/lingo/xlibs/paco.cpp
    engines/director/lingo/xlibs/paco.h
    engines/director/lingo/xlibs/palxobj.cpp
    engines/director/lingo/xlibs/palxobj.h
    engines/director/lingo/xlibs/panel.cpp
    engines/director/lingo/xlibs/panel.h
    engines/director/lingo/xlibs/popupmenuxobj.cpp
    engines/director/lingo/xlibs/popupmenuxobj.h
    engines/director/lingo/xlibs/porta.cpp
    engines/director/lingo/xlibs/porta.h
    engines/director/lingo/xlibs/prefpath.cpp
    engines/director/lingo/xlibs/prefpath.h
    engines/director/lingo/xlibs/printomatic.cpp
    engines/director/lingo/xlibs/printomatic.h
    engines/director/lingo/xlibs/processxobj.cpp
    engines/director/lingo/xlibs/processxobj.h
    engines/director/lingo/xlibs/qtcatmovieplayerxobj.cpp
    engines/director/lingo/xlibs/qtcatmovieplayerxobj.h
    engines/director/lingo/xlibs/qtmovie.cpp
    engines/director/lingo/xlibs/qtmovie.h
    engines/director/lingo/xlibs/qtvr.cpp
    engines/director/lingo/xlibs/qtvr.h
    engines/director/lingo/xlibs/quicktime.cpp
    engines/director/lingo/xlibs/quicktime.h
    engines/director/lingo/xlibs/registercomponent.cpp
    engines/director/lingo/xlibs/registercomponent.h
    engines/director/lingo/xlibs/remixxcmd.cpp
    engines/director/lingo/xlibs/remixxcmd.h
    engines/director/lingo/xlibs/serialportxobj.cpp
    engines/director/lingo/xlibs/serialportxobj.h
    engines/director/lingo/xlibs/soundjam.cpp
    engines/director/lingo/xlibs/soundjam.h
    engines/director/lingo/xlibs/spacemgr.cpp
    engines/director/lingo/xlibs/spacemgr.h
    engines/director/lingo/xlibs/stagetc.cpp
    engines/director/lingo/xlibs/stagetc.h
    engines/director/lingo/xlibs/syscolor.cpp
    engines/director/lingo/xlibs/syscolor.h
    engines/director/lingo/xlibs/unittest.cpp
    engines/director/lingo/xlibs/unittest.h
    engines/director/lingo/xlibs/valkyrie.cpp
    engines/director/lingo/xlibs/valkyrie.h
    engines/director/lingo/xlibs/videodiscxobj.cpp
    engines/director/lingo/xlibs/videodiscxobj.h
    engines/director/lingo/xlibs/vmisonxfcn.cpp
    engines/director/lingo/xlibs/vmisonxfcn.h
    engines/director/lingo/xlibs/volumelist.cpp
    engines/director/lingo/xlibs/volumelist.h
    engines/director/lingo/xlibs/widgetxobj.cpp
    engines/director/lingo/xlibs/widgetxobj.h
    engines/director/lingo/xlibs/window.cpp
    engines/director/lingo/xlibs/window.h
    engines/director/lingo/xlibs/wininfo.cpp
    engines/director/lingo/xlibs/wininfo.h
    engines/director/lingo/xlibs/winxobj.cpp
    engines/director/lingo/xlibs/winxobj.h
    engines/director/lingo/xlibs/xcmdglue.cpp
    engines/director/lingo/xlibs/xcmdglue.h
    engines/director/lingo/xlibs/xio.cpp
    engines/director/lingo/xlibs/xio.h
    engines/director/lingo/xlibs/xplayanim.cpp
    engines/director/lingo/xlibs/xplayanim.h
    engines/director/lingo/xlibs/xsoundxfcn.cpp
    engines/director/lingo/xlibs/xsoundxfcn.h
    engines/director/lingo/xlibs/xwin.cpp
    engines/director/lingo/xlibs/xwin.h
    engines/director/lingo/xlibs/yasix.cpp
    engines/director/lingo/xlibs/yasix.h
    engines/director/lingo/xtras/directsound.cpp
    engines/director/lingo/xtras/directsound.h
    engines/director/lingo/xtras/keypoll.cpp
    engines/director/lingo/xtras/keypoll.h
    engines/director/lingo/xtras/qtvrxtra.cpp
    engines/director/lingo/xtras/qtvrxtra.h
    engines/director/lingo/xtras/scrnutil.cpp
    engines/director/lingo/xtras/scrnutil.h
    engines/director/lingo/xtras/timextra.cpp
    engines/director/lingo/xtras/timextra.h
    engines/director/palette-fade.h
    engines/director/score.cpp
    engines/director/types.cpp
    engines/director/util.cpp
    engines/director/util.h


diff --git a/engines/director/blank-score.h b/engines/director/blank-score.h
index 2c115bdf999..55a40101d6d 100644
--- a/engines/director/blank-score.h
+++ b/engines/director/blank-score.h
@@ -19,12 +19,12 @@
  *
  */
 
-static byte kBlankScoreD2[] = {
+static const byte kBlankScoreD2[] = {
 	0x00, 0x00, 0x00, 0x06, // _framesStreamSize
 	0x00, 0x02              // frame with empty channel information
 };
 
-static byte kBlankScoreD4[] = {
+static const byte kBlankScoreD4[] = {
 	0x00, 0x00, 0x00, 0x12, // _framesStreamSize
 	0x00, 0x00, 0x00, 0x10, // frame1Offset
 	0x00, 0x00, 0x00, 0x01, // numOfFrames
diff --git a/engines/director/castmember/bitmap.cpp b/engines/director/castmember/bitmap.cpp
index dbd40d71f3c..28df2c9d7db 100644
--- a/engines/director/castmember/bitmap.cpp
+++ b/engines/director/castmember/bitmap.cpp
@@ -331,7 +331,7 @@ Graphics::Surface *BitmapCastMember::getDitherImg() {
 	// Check if the palette is in the middle of a color fade event
 	bool isColorCycling = score->isPaletteColorCycling();
 
-	byte *dstPalette = targetBpp == 1 ? currentPalette->palette : nullptr;
+	const byte *dstPalette = targetBpp == 1 ? currentPalette->palette : nullptr;
 	int dstPaletteCount = targetBpp == 1 ? currentPalette->length : 0;
 
 	// First, check if the palettes are different
diff --git a/engines/director/director.h b/engines/director/director.h
index c75cac152ce..560c1b08621 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -117,10 +117,10 @@ struct StartOptions {
 
 struct PaletteV4 {
 	CastMemberID id;
-	byte *palette;
+	const byte *palette;
 	int length;
 
-	PaletteV4(CastMemberID i, byte *p, int l) : id(i), palette(p), length(l) {}
+	PaletteV4(CastMemberID i, const byte *p, int l) : id(i), palette(p), length(l) {}
 	PaletteV4() : id(), palette(nullptr), length(0) {}
 };
 
@@ -185,9 +185,9 @@ public:
 	// graphics.cpp
 	bool hasFeature(EngineFeature f) const override;
 
-	void addPalette(CastMemberID &id, byte *palette, int length);
+	void addPalette(CastMemberID &id, const byte *palette, int length);
 	bool setPalette(const CastMemberID &id);
-	void setPalette(byte *palette, uint16 count);
+	void setPalette(const byte *palette, uint16 count);
 	void shiftPalette(int startIndex, int endIndex, bool reverse);
 	void clearPalettes();
 	PaletteV4 *getPalette(const CastMemberID &id);
diff --git a/engines/director/fonts.cpp b/engines/director/fonts.cpp
index d782e4a3a34..59a23c623f0 100644
--- a/engines/director/fonts.cpp
+++ b/engines/director/fonts.cpp
@@ -121,7 +121,7 @@ enum FXmpTokenType {
 	FXMP_TOKEN_ERROR
 };
 
-const char *FXmpTokenTypeStrings[] = {
+const char *const FXmpTokenTypeStrings[] = {
 	"WORD",
 	"INT",
 	"STRING",
diff --git a/engines/director/game-quirks.cpp b/engines/director/game-quirks.cpp
index 78341825bfe..5e6bb493e3c 100644
--- a/engines/director/game-quirks.cpp
+++ b/engines/director/game-quirks.cpp
@@ -190,7 +190,7 @@ static void quirkMcLuhanMac() {
 	delete installer;
 }
 
-struct Quirk {
+const struct Quirk {
 	const char *target;
 	Common::Platform platform;
 	void (*quirk)();
diff --git a/engines/director/graphics-data.h b/engines/director/graphics-data.h
index c60bcb4f62c..c48a72affc7 100644
--- a/engines/director/graphics-data.h
+++ b/engines/director/graphics-data.h
@@ -22,7 +22,7 @@
 // The following builtin palettes are extracted from the resource forks
 // in the Director for Windows 4 projector executable.
 
-static byte macPalette[768] = {
+static const byte macPalette[768] = {
 	0xff, 0xff, 0xff, 0xff, 0xff, 0xcc, 0xff, 0xff, 0x99, 0xff, 0xff, 0x66,  //   0 (0x00)
 	0xff, 0xff, 0x33, 0xff, 0xff, 0x00, 0xff, 0xcc, 0xff, 0xff, 0xcc, 0xcc,  //   4 (0x04)
 	0xff, 0xcc, 0x99, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x33, 0xff, 0xcc, 0x00,  //   8 (0x08)
@@ -91,7 +91,7 @@ static byte macPalette[768] = {
 
 
 // Below is how the 16-color Mac palette is stored in the Director 4 for Windows resource fork 1:
-/* static byte mac16Palette[48] = {
+/* static const byte mac16Palette[48] = {
 	0xff, 0xff, 0xff, 0xfc, 0xf3, 0x05, 0xff, 0x64, 0x02, 0xdd, 0x08, 0x06,  //   0 (0x00)
 	0xf2, 0x08, 0x84, 0x46, 0x00, 0xa5, 0x00, 0x00, 0xd4, 0x02, 0xab, 0xea,  //   4 (0x04)
 	0x1f, 0xb7, 0x14, 0x00, 0x64, 0x11, 0x56, 0x2c, 0x05, 0x90, 0x71, 0x3a,  //   8 (0x08)
@@ -100,7 +100,7 @@ static byte macPalette[768] = {
 
 // Below is the palette that is actually expected to decode 4-bit images.
 // This was achieved by screenshot sampling; the actual storage is unknown.
-static byte mac16Palette[48] = {
+static const byte mac16Palette[48] = {
 	0xff, 0xff, 0xff, 0xba, 0xba, 0xba, 0xff, 0xff, 0x00, 0x8a, 0x8a, 0x8a,  //   0 (0x00)
 	0x9a, 0xce, 0xff, 0x9a, 0x65, 0x31, 0x00, 0x9a, 0x00, 0x9a, 0xce, 0x00,  //   4 (0x04)
 	0xce, 0x00, 0xce, 0x9a, 0x00, 0x9a, 0xff, 0x00, 0x31, 0xff, 0x9a, 0x31,  //   8 (0x08)
@@ -108,49 +108,49 @@ static byte mac16Palette[48] = {
 };
 
 
-static byte rainbow16Palette[48] = {
+static const byte rainbow16Palette[48] = {
 	0xff, 0xff, 0xff, 0x00, 0x0a, 0xff, 0x5f, 0x00, 0xff, 0xc5, 0x00, 0xff,  //   0 (0x00)
 	0xff, 0x00, 0xd2, 0xff, 0x00, 0x6c, 0xff, 0x00, 0x06, 0xff, 0x5f, 0x00,  //   4 (0x04)
 	0xff, 0xc5, 0x00, 0xd2, 0xff, 0x00, 0x6c, 0xff, 0x00, 0x06, 0xff, 0x00,  //   8 (0x08)
 	0x00, 0xff, 0x5f, 0x00, 0xff, 0xc5, 0x00, 0xd2, 0xff, 0x00, 0x00, 0x00,  //  12 (0x0c)
 };
 
-static byte grayscale16Palette[48] = {
+static const byte grayscale16Palette[48] = {
 	0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc,  //   0 (0x00)
 	0xba, 0xba, 0xba, 0xa9, 0xa9, 0xa9, 0x98, 0x98, 0x98, 0x87, 0x87, 0x87,  //   4 (0x04)
 	0x76, 0x76, 0x76, 0x65, 0x65, 0x65, 0x54, 0x54, 0x54, 0x43, 0x43, 0x43,  //   8 (0x08)
 	0x31, 0x31, 0x31, 0x20, 0x20, 0x20, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00,  //  12 (0x0c)
 };
 
-static byte pastels16Palette[48] = {
+static const byte pastels16Palette[48] = {
 	0xff, 0xff, 0xff, 0xfd, 0xbe, 0x47, 0xef, 0x65, 0x48, 0xc8, 0x37, 0x44,  //   0 (0x00)
 	0xe6, 0x43, 0x8b, 0x91, 0x46, 0xb8, 0x4b, 0x44, 0xdb, 0x46, 0xb9, 0xee,  //   4 (0x04)
 	0x5c, 0xcb, 0x53, 0x48, 0x8c, 0x50, 0x94, 0x78, 0x48, 0xf8, 0xd3, 0x49,  //   8 (0x08)
 	0xe9, 0x4b, 0x62, 0xba, 0x48, 0xb9, 0x88, 0x88, 0xe6, 0x00, 0x00, 0x00,  //  12 (0x0c)
 };
 
-static byte vivid16Palette[48] = {
+static const byte vivid16Palette[48] = {
 	0xff, 0xff, 0xff, 0xfc, 0xcc, 0x03, 0xf3, 0x44, 0x02, 0xc8, 0x04, 0x0d,  //   0 (0x00)
 	0xcb, 0x03, 0x4a, 0x96, 0x03, 0x95, 0x1b, 0x00, 0xc1, 0x01, 0x72, 0xe2,  //   4 (0x04)
 	0x17, 0xb3, 0x4d, 0x06, 0x74, 0x11, 0x4a, 0x33, 0x06, 0xf0, 0xe5, 0x04,  //   8 (0x08)
 	0xdc, 0x07, 0x06, 0xe1, 0x07, 0x89, 0x20, 0x20, 0xd7, 0x00, 0x00, 0x00,  //  12 (0x0c)
 };
 
-static byte ntsc16Palette[48] = {
+static const byte ntsc16Palette[48] = {
 	0xff, 0xff, 0xff, 0xbe, 0xbe, 0xbe, 0xff, 0xe6, 0x00, 0x80, 0x80, 0x80,  //   0 (0x00)
 	0x56, 0x2c, 0x05, 0x7c, 0x60, 0x1b, 0x00, 0x9e, 0x00, 0x00, 0x64, 0x11,  //   4 (0x04)
 	0xde, 0x00, 0xbf, 0x46, 0x00, 0xa5, 0xfa, 0x00, 0x39, 0xff, 0x8c, 0x32,  //   8 (0x08)
 	0x00, 0x00, 0xea, 0x02, 0xab, 0xea, 0x64, 0x64, 0x64, 0x00, 0x00, 0x00,  //  12 (0x0c)
 };
 
-static byte metallic16Palette[48] = {
+static const byte metallic16Palette[48] = {
 	0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff,  //   0 (0x00)
 	0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x7f, 0x7f, 0x7f,  //   4 (0x04)
 	0xbf, 0xbf, 0xbf, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x7f, 0x00, 0x00, 0x7f,  //   8 (0x08)
 	0x7f, 0x7f, 0x00, 0x00, 0x7f, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,  //  12 (0x0c)
 };
 
-static byte rainbowPalette[768] = {
+static const byte rainbowPalette[768] = {
 	0xff, 0xff, 0xff, 0x00, 0x69, 0xff, 0x00, 0x63, 0xff, 0x00, 0x5d, 0xff,  //   0 (0x00)
 	0x00, 0x56, 0xff, 0x00, 0x50, 0xff, 0x00, 0x4a, 0xff, 0x00, 0x43, 0xff,  //   4 (0x04)
 	0x00, 0x3d, 0xff, 0x00, 0x36, 0xff, 0x00, 0x30, 0xff, 0x00, 0x2a, 0xff,  //   8 (0x08)
@@ -217,7 +217,7 @@ static byte rainbowPalette[768] = {
 	0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00,  // 252 (0xfc)
 };
 
-static byte grayscalePalette[768] = {
+static const byte grayscalePalette[768] = {
 	0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfd, 0xfd, 0xfd, 0xfc, 0xfc, 0xfc,  //   0 (0x00)
 	0xfb, 0xfb, 0xfb, 0xfa, 0xfa, 0xfa, 0xf9, 0xf9, 0xf9, 0xf8, 0xf8, 0xf8,  //   4 (0x04)
 	0xf7, 0xf7, 0xf7, 0xf6, 0xf6, 0xf6, 0xf5, 0xf5, 0xf5, 0xf4, 0xf4, 0xf4,  //   8 (0x08)
@@ -284,7 +284,7 @@ static byte grayscalePalette[768] = {
 	0x03, 0x03, 0x03, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,  // 252 (0xfc)
 };
 
-static byte pastelsPalette[768] = {
+static const byte pastelsPalette[768] = {
 	0xff, 0xff, 0xff, 0xfe, 0xfe, 0xf2, 0xfe, 0xfd, 0xe6, 0xfe, 0xfd, 0xda,  //   0 (0x00)
 	0xfe, 0xfc, 0xce, 0xfe, 0xfb, 0xc2, 0xfe, 0xfb, 0xb6, 0xfe, 0xfa, 0xaa,  //   4 (0x04)
 	0xfd, 0xfa, 0x9d, 0xfd, 0xf9, 0x91, 0xfd, 0xf8, 0x85, 0xfd, 0xf8, 0x79,  //   8 (0x08)
@@ -351,7 +351,7 @@ static byte pastelsPalette[768] = {
 	0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00,  // 252 (0xfc)
 };
 
-static byte vividPalette[768] = {
+static const byte vividPalette[768] = {
 	0xff, 0xff, 0xff, 0xfe, 0xfe, 0xee, 0xfe, 0xfd, 0xdd, 0xfe, 0xfc, 0xcc,  //   0 (0x00)
 	0xfe, 0xfb, 0xbc, 0xfd, 0xfa, 0xab, 0xfd, 0xfa, 0x9a, 0xfd, 0xf9, 0x8a,  //   4 (0x04)
 	0xfd, 0xf8, 0x79, 0xfd, 0xf7, 0x68, 0xfc, 0xf6, 0x58, 0xfc, 0xf6, 0x47,  //   8 (0x08)
@@ -418,7 +418,7 @@ static byte vividPalette[768] = {
 	0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00,  // 252 (0xfc)
 };
 
-static byte ntscPalette[768] = {
+static const byte ntscPalette[768] = {
 	0xff, 0xff, 0xff, 0x59, 0x2b, 0x85, 0x5d, 0x21, 0x5f, 0x7b, 0x28, 0x52,  //   0 (0x00)
 	0x9a, 0x30, 0x44, 0xa1, 0x3d, 0x42, 0xa5, 0x43, 0x41, 0xa9, 0x47, 0x3e,  //   4 (0x04)
 	0xac, 0x4b, 0x3a, 0xb0, 0x4f, 0x37, 0xb4, 0x53, 0x33, 0xba, 0x66, 0x35,  //   8 (0x08)
@@ -485,7 +485,7 @@ static byte ntscPalette[768] = {
 	0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00,  // 252 (0xfc)
 };
 
-static byte metallicPalette[768] = {
+static const byte metallicPalette[768] = {
 	0xff, 0xff, 0xff, 0x66, 0x4c, 0x80, 0x5f, 0x42, 0x6c, 0x58, 0x37, 0x59,  //   0 (0x00)
 	0x75, 0x47, 0x5e, 0x94, 0x58, 0x63, 0x9b, 0x66, 0x69, 0x9f, 0x6c, 0x6a,  //   4 (0x04)
 	0xa3, 0x6d, 0x68, 0xa6, 0x6f, 0x66, 0xaa, 0x73, 0x65, 0xae, 0x79, 0x67,  //   8 (0x08)
@@ -552,21 +552,21 @@ static byte metallicPalette[768] = {
 	0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00,  // 252 (0xfc)
 };
 
-static byte win16Palette[48] = {
+static const byte win16Palette[48] = {
 	0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff,  //   0 (0x00)
 	0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x7f, 0x7f, 0x7f,  //   4 (0x04)
 	0xc0, 0xc0, 0xc0, 0x00, 0xbf, 0xbf, 0xbf, 0x00, 0xbf, 0x00, 0x00, 0xbf,  //   8 (0x08)
 	0xbf, 0xbf, 0x00, 0x00, 0xbf, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00,  //  12 (0x0c)
 };
 
-static byte winD516Palette[48] = {
+static const byte winD516Palette[48] = {
 	0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff,  //   0 (0x00)
 	0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x80, 0x80, 0x80,  //   4 (0x04)
 	0xa0, 0xa0, 0xa4, 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x00, 0x00, 0x80,  //   8 (0x08)
 	0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,  //  12 (0x0c)
 };
 
-static byte winPalette[768] = {
+static const byte winPalette[768] = {
 	0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff,  //   0 (0x00)
 	0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x80, 0x80, 0x80,  //   4 (0x04)
 	0xa0, 0xa0, 0xa4, 0xff, 0xfb, 0xf0, 0x33, 0x33, 0x33, 0x99, 0x66, 0x00,  //   8 (0x08)
@@ -633,7 +633,7 @@ static byte winPalette[768] = {
 	0xbf, 0xbf, 0x00, 0x00, 0xbf, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00,  // 252 (0xfc)
 };
 
-static byte winD5Palette[768] = {
+static const byte winD5Palette[768] = {
 	0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff,  //   0 (0x00)
 	0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x80, 0x80, 0x80,  //   4 (0x04)
 	0xa0, 0xa0, 0xa4, 0xff, 0xfb, 0xf0, 0x33, 0x33, 0x33, 0x99, 0x66, 0x00,  //   8 (0x08)
@@ -705,12 +705,12 @@ static byte winD5Palette[768] = {
 // remapping to the current movie palette.
 
 // The 2-bit palette is clear cut; white, light gray, dark gray, black.
-static byte grayscale4Palette[12] = {
+static const byte grayscale4Palette[12] = {
 	0xff, 0xff, 0xff, 0xa3, 0xa3, 0xa3, 0x65, 0x65, 0x65, 0x00, 0x00, 0x00
 };
 
 
-static byte director3Patterns[][8] = {
+static const byte director3Patterns[][8] = {
 	{ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
 	{ 0xFF, 0xFF, 0x77, 0xFF, 0xFF, 0xFF, 0x77, 0xFF },
 	{ 0x77, 0xFF, 0xDD, 0xFF, 0x77, 0xFF, 0xDD, 0xFF },
@@ -769,7 +769,7 @@ static byte director3Patterns[][8] = {
 	{ 0xFF, 0xFF, 0xBE, 0x9C, 0xAA, 0xB6, 0xBE, 0xFF }
 };
 
-static byte director3QuickDrawPatterns[][8] = {
+static const byte director3QuickDrawPatterns[][8] = {
 	{ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
 	{ 0xDD, 0xFF, 0x77, 0xFF, 0xDD, 0xFF, 0x77, 0xFF },
 	{ 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77 },
diff --git a/engines/director/graphics.cpp b/engines/director/graphics.cpp
index 08dded7405d..dea44bf9c7b 100644
--- a/engines/director/graphics.cpp
+++ b/engines/director/graphics.cpp
@@ -148,7 +148,7 @@ bool DirectorEngine::hasPalette(const CastMemberID &id) {
 	return _loadedPalettes.contains(id);
 }
 
-void DirectorEngine::addPalette(CastMemberID &id, byte *palette, int length) {
+void DirectorEngine::addPalette(CastMemberID &id, const byte *palette, int length) {
 	if (id.castLib < 0) {
 		warning("DirectorEngine::addPalette(): Negative cast library ids reserved for default palettes");
 		return;
@@ -177,7 +177,7 @@ bool DirectorEngine::setPalette(const CastMemberID &id) {
 	return true;
 }
 
-void DirectorEngine::setPalette(byte *palette, uint16 count) {
+void DirectorEngine::setPalette(const byte *palette, uint16 count) {
 
 	memset(_currentPalette, 0, 768);
 	memmove(_currentPalette, palette, count * 3);
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index f930fdc1bff..a3e798c703f 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -52,7 +52,7 @@
 
 namespace Director {
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	// Math
 	{ "abs",			LB::b_abs,			1, 1, 200, FBLTIN },	// D2 function
 	{ "atan",			LB::b_atan,			1, 1, 400, FBLTIN },	//			D4 f
@@ -245,8 +245,8 @@ void Lingo::initBuiltIns() {
 	initBuiltIns(builtins);
 }
 
-void Lingo::initBuiltIns(BuiltinProto protos[]) {
-	for (BuiltinProto *blt = protos; blt->name; blt++) {
+void Lingo::initBuiltIns(const BuiltinProto protos[]) {
+	for (const BuiltinProto *blt = protos; blt->name; blt++) {
 		if (blt->version > _vm->getVersion())
 			continue;
 
@@ -288,8 +288,8 @@ void Lingo::cleanupBuiltIns() {
 	_builtinConsts.clear();
 }
 
-void Lingo::cleanupBuiltIns(BuiltinProto protos[]) {
-	for (BuiltinProto *blt = protos; blt->name; blt++) {
+void Lingo::cleanupBuiltIns(const BuiltinProto protos[]) {
+	for (const BuiltinProto *blt = protos; blt->name; blt++) {
 		switch (blt->type) {
 		case CBLTIN:
 			_builtinCmds.erase(blt->name);
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index 7355c295ca8..76a9a1936fc 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -38,7 +38,7 @@
 
 namespace Director {
 
-static LingoV4Bytecode lingoV4[] = {
+static const LingoV4Bytecode lingoV4[] = {
 	{ 0x01, LC::c_procret,		"" },
 	{ 0x02, LC::c_procret,		"" },
 	{ 0x03, LC::cb_zeropush,	"" },
@@ -144,7 +144,7 @@ static LingoV4Bytecode lingoV4[] = {
 	{ 0, nullptr, nullptr }
 };
 
-static LingoV4TheEntity lingoV4TheEntity[] = {
+static const LingoV4TheEntity lingoV4TheEntity[] = {
 	{ 0x00, 0x00, kTheFloatPrecision,	kTheNOField,		true, kTEANOArgs },
 	{ 0x00, 0x01, kTheMouseDownScript,	kTheNOField,		true, kTEANOArgs },
 	{ 0x00, 0x02, kTheMouseUpScript,	kTheNOField,		true, kTEANOArgs },
@@ -317,7 +317,7 @@ void Lingo::initBytecode() {
 	for (auto &it : _functions)
 		list[(inst)it._key] = true;
 
-	for (LingoV4Bytecode *op = lingoV4; op->opcode; op++) {
+	for (const LingoV4Bytecode *op = lingoV4; op->opcode; op++) {
 		_lingoV4[op->opcode] = op;
 
 		if (!list.contains(op->func)) {
@@ -329,7 +329,7 @@ void Lingo::initBytecode() {
 	if (bailout)
 		error("Lingo::initBytecode(): Add entries to funcDescr[] in lingo-code.cpp");
 
-	for (LingoV4TheEntity *ent = lingoV4TheEntity; ent->bank != 0xff; ent++) {
+	for (const LingoV4TheEntity *ent = lingoV4TheEntity; ent->bank != 0xff; ent++) {
 		_lingoV4TheEntity[(ent->bank << 8) + ent->firstArg] = ent;
 	}
 }
@@ -615,7 +615,7 @@ void LC::cb_theassign2() {
 	Datum value = g_lingo->pop();
 
 	if (g_lingo->_theEntities.contains(name)) {
-		TheEntity *entity = g_lingo->_theEntities[name];
+		const TheEntity *entity = g_lingo->_theEntities[name];
 		Datum id;
 		id.u.i = 0;
 		id.type = VOID;
@@ -645,7 +645,7 @@ void LC::cb_thepush2() {
 	Datum result;
 	Common::String name = g_lingo->readString();
 	if (g_lingo->_theEntities.contains(name)) {
-		TheEntity *entity = g_lingo->_theEntities[name];
+		const TheEntity *entity = g_lingo->_theEntities[name];
 		Datum id;
 		id.u.i = 0;
 		id.type = VOID;
@@ -847,7 +847,7 @@ void LC::cb_v4theentitynamepush() {
 		g_lingo->push(Datum());
 		return;
 	}
-	TheEntity *entity = g_lingo->_theEntities[name];
+	const TheEntity *entity = g_lingo->_theEntities[name];
 
 	debugC(3, kDebugLingoExec, "cb_v4theentitynamepush: %s", name.c_str());
 	debugC(3, kDebugLingoExec, "cb_v4theentitynamepush: calling getTheEntity(%s, VOID, kTheNOField)", g_lingo->entity2str(entity->entity));
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 79347d1d9af..b6021f024cd 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -59,7 +59,7 @@
 
 namespace Director {
 
-static struct FuncDescr {
+static const struct FuncDescr {
 	const inst func;
 	const char *name;
 	const char *args;
@@ -173,7 +173,7 @@ static struct FuncDescr {
 
 void Lingo::initFuncs() {
 	Symbol sym;
-	for (FuncDescr *fnc = funcDescr; fnc->name; fnc++) {
+	for (const FuncDescr *fnc = funcDescr; fnc->name; fnc++) {
 		sym.u.func = fnc->func;
 		_functions[(void *)sym.u.s] = new FuncDesc(fnc->name, fnc->args);
 	}
@@ -1662,7 +1662,7 @@ void LC::call(const Symbol &funcSym, int nargs, bool allowRetVal) {
 			if (g_lingo->_theEntities.contains(*funcSym.name) && nargs == 0) {
 				warning("Calling builtin '%s' as a function", funcSym.name->c_str());
 
-				TheEntity *entity = g_lingo->_theEntities[*funcSym.name];
+				const TheEntity *entity = g_lingo->_theEntities[*funcSym.name];
 				Datum id;
 				id.u.i = 0;
 				id.type = VOID;
diff --git a/engines/director/lingo/lingo-mci.cpp b/engines/director/lingo/lingo-mci.cpp
index 11874811bee..0cc7529f529 100644
--- a/engines/director/lingo/lingo-mci.cpp
+++ b/engines/director/lingo/lingo-mci.cpp
@@ -100,7 +100,7 @@ struct CmdTableRow {
     MCIDataType data_type;
 };
 
-static CmdTableRow table[] = {
+static const CmdTableRow table[] = {
   {"open"            ,MCI_OPEN      ,0          ,MCI_COMMAND_HEAD },
   {""                ,MCI_INTEGER   ,0          ,MCI_RETURN }      ,
   {"notify"          ,0x00000001L   ,-1         ,MCI_FLAG }        ,
@@ -330,7 +330,7 @@ static MCIError parseMCICommand(const Common::String &name, MCICommand &parsedCm
         bool found = false;
         bool inConst = false;
         int flag, cflag = 0;
-        CmdTableRow *cmdtable, *c_cmdtable = nullptr;
+        const CmdTableRow *cmdtable, *c_cmdtable = nullptr;
         auto& token = token_list[i_token];
 
         for (i_table = tableStart; i_table < tableEnd; i_table++) {
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index cce60542c0d..201b713c0d9 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -141,7 +141,7 @@
 
 namespace Director {
 
-static struct PredefinedProto {
+static const struct PredefinedProto {
 	const char *name;
 	void (*func)(int);
 	int minArgs;	// -1 -- arglist
@@ -169,7 +169,7 @@ static struct PredefinedProto {
 	{ nullptr, nullptr, 0, 0, 0, 0 }
 };
 
-static MethodProto windowMethods[] = {
+static const MethodProto windowMethods[] = {
 	// window / stage
 	{ "close",					LM::m_close,				 0, 0,	400 },			// D4
 	{ "forget",					LM::m_forget,				 0, 0,	400 },			// D4
@@ -180,7 +180,7 @@ static MethodProto windowMethods[] = {
 };
 
 void Lingo::initMethods() {
-	for (PredefinedProto *mtd = predefinedMethods; mtd->name; mtd++) {
+	for (const PredefinedProto *mtd = predefinedMethods; mtd->name; mtd++) {
 		if (mtd->version > _vm->getVersion())
 			continue;
 
@@ -204,7 +204,7 @@ void Lingo::cleanupMethods() {
 #define XLIBDEF(class, flags, version) \
 	{ class::fileNames, class::open, class::close, flags, version }
 
-static struct XLibProto {
+static const struct XLibProto {
 	const XlibFileDesc *names;
 	XLibOpenerFunc opener;
 	XLibCloserFunc closer;
@@ -323,7 +323,7 @@ static struct XLibProto {
 };
 
 void Lingo::initXLibs() {
-	for (XLibProto *lib = xlibs; lib->names; lib++) {
+	for (const XLibProto *lib = xlibs; lib->names; lib++) {
 		if (lib->version > _vm->getVersion())
 			continue;
 
diff --git a/engines/director/lingo/lingo-object.h b/engines/director/lingo/lingo-object.h
index e11bb01ddb5..1350b41fe29 100644
--- a/engines/director/lingo/lingo-object.h
+++ b/engines/director/lingo/lingo-object.h
@@ -92,14 +92,14 @@ protected:
 	};
 
 public:
-	static void initMethods(MethodProto protos[]) {
+	static void initMethods(const MethodProto protos[]) {
 		if (_methods) {
 			warning("Object::initMethods: Methods already initialized");
 			return;
 		}
 
 		_methods = new SymbolHash;
-		for (MethodProto *mtd = protos; mtd->name; mtd++) {
+		for (const MethodProto *mtd = protos; mtd->name; mtd++) {
 			if (mtd->version > g_lingo->_vm->getVersion())
 				continue;
 
diff --git a/engines/director/lingo/lingo-patcher.cpp b/engines/director/lingo/lingo-patcher.cpp
index 493508a154a..3b1a50dc5c8 100644
--- a/engines/director/lingo/lingo-patcher.cpp
+++ b/engines/director/lingo/lingo-patcher.cpp
@@ -258,7 +258,7 @@ struct ScriptPatch {
  * always mean a yes response, and "no" should always mean a no response.
  */
 
-const char *kyotoTextEntryFix = " \
+const char *const kyotoTextEntryFix = " \
 on scrubInput inputString \r\
   set result = \"\" \r\
   repeat with x = 1 to the number of chars in inputString \r\
@@ -325,7 +325,7 @@ end \r\
  * to determine which has the CD. This works, but takes forever.
  */
 
-const char *vncSkipDetection = " \
+const char *const vncSkipDetection = " \
 global cdDriveLetter, gMultiDisk \r\
 on findVNCVolume \r\
   set cdDriveLetter to \"D\" \r\
@@ -340,7 +340,7 @@ end \r\
  * released game has this code stubbed out with a return.
  */
 
-const char *vncEnableCheats = " \
+const char *const vncEnableCheats = " \
 on togCh\r\
   if getFlag(#cheats) then\r\
     setFlag(#cheats, 0)\r\
@@ -364,7 +364,7 @@ end\r\
  * different drive letters. ScummVM will pretend that every drive letter contains the
  * game contents, so we need to hotpatch the CD detection routine to return D:.
  */
-const char *amberDriveDetectionFix = " \
+const char *const amberDriveDetectionFix = " \
 on GetCDLetter tagFile, discNumber\r\
   return \"D:\"\r\
 end \r\
@@ -374,7 +374,7 @@ end \r\
  * identically-named submovie FRANKIE.DIR. For now we can work around this mess by referring to
  * the full "path" of the embedded submovie so path detection doesn't collide with FRANKIE.EXE.
  */
-const char *frankensteinSwapFix = " \
+const char *const frankensteinSwapFix = " \
 on exitFrame \r\
   go(1, \"FRANKIE\\FRANKIE.DIR\")\r\
 end \r\
@@ -388,7 +388,7 @@ struct ScriptHandlerPatch {
 	ScriptType type;
 	uint16 id;
 	uint16 castLib;
-	const char **handlerBody;
+	const char *const *handlerBody;
 } const scriptHandlerPatches[] = {
 	{"kyoto", nullptr, kPlatformWindows, "ck_data\\dd_dairi\\shared.dxr", kMovieScript, 906, DEFAULT_CAST_LIB, &kyotoTextEntryFix},
 	{"kyoto", nullptr, kPlatformWindows, "ck_data\\findfldr\\shared.dxr", kMovieScript, 802, DEFAULT_CAST_LIB, &kyotoTextEntryFix},
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index af1be11ab82..8f1e31a9642 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -47,7 +47,7 @@ namespace Director {
 
 class Sprite;
 
-TheEntity entities[] = {
+const TheEntity entities[] = {
 	{ kTheActorList,		"actorList",		false, 400, false },	//			D4 property
 	{ kTheBeepOn,			"beepOn",			false, 200, false },	// D2 p
 	{ kTheButtonStyle,		"buttonStyle",		false, 200, false },	// D2 p
@@ -168,7 +168,7 @@ TheEntity entities[] = {
 	{ kTheNOEntity, nullptr, false, 0, false }
 };
 
-TheEntityField fields[] = {
+const TheEntityField fields[] = {
 	{ kTheSprite,	"backColor",	kTheBackColor,	200 },// D2 p
 	{ kTheSprite,	"blend",		kTheBlend,		400 },//				D4 p
 	{ kTheSprite,	"bottom",		kTheBottom,		200 },// D2 p
@@ -313,7 +313,7 @@ TheEntityField fields[] = {
 void Lingo::initTheEntities() {
 	_objectEntityId = kTheObject;
 
-	TheEntity *e = entities;
+	const TheEntity *e = entities;
 	_entityNames.resize(kTheMaxTheEntityType);
 
 	while (e->entity != kTheNOEntity) {
@@ -326,7 +326,7 @@ void Lingo::initTheEntities() {
 		e++;
 	}
 
-	TheEntityField *f = fields;
+	const TheEntityField *f = fields;
 	_fieldNames.resize(kTheMaxTheFieldType);
 
 	while (f->entity != kTheNOEntity) {
diff --git a/engines/director/lingo/lingo-utils.cpp b/engines/director/lingo/lingo-utils.cpp
index 5f93a371d8f..b8fafd3afaa 100644
--- a/engines/director/lingo/lingo-utils.cpp
+++ b/engines/director/lingo/lingo-utils.cpp
@@ -24,7 +24,7 @@
 
 namespace Director {
 
-static struct CharNormProto {
+static const struct CharNormProto {
 	Common::u32char_type_t from;
 	const char *to;
 } charNormProtos[] = {
@@ -106,7 +106,7 @@ void Lingo::initCharNormalizations() {
 	for (char ch = 'A'; ch <= 'Z'; ch++) {
 		_charNormalizations[ch] = Common::U32String(Common::String(tolower(ch)), Common::kUtf8);
 	}
-	for (CharNormProto *norm = charNormProtos; norm->to; norm++) {
+	for (const CharNormProto *norm = charNormProtos; norm->to; norm++) {
 		_charNormalizations[norm->from] = Common::U32String(norm->to, Common::kUtf8);
 	}
 }
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 3295877d408..8357c8d18eb 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -244,8 +244,8 @@ typedef Common::HashMap<Common::String, XLibCloserFunc, Common::IgnoreCase_Hash,
 typedef Common::HashMap<Common::String, ObjectType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> OpenXLibsHash;
 typedef Common::HashMap<Common::String, AbstractObject *, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> OpenXLibsStateHash;
 
-typedef Common::HashMap<Common::String, TheEntity *, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> TheEntityHash;
-typedef Common::HashMap<Common::String, TheEntityField *, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> TheEntityFieldHash;
+typedef Common::HashMap<Common::String, const TheEntity *, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> TheEntityHash;
+typedef Common::HashMap<Common::String, const TheEntityField *, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> TheEntityFieldHash;
 
 struct CFrame {	/* proc/func call stack frame */
 	Symbol			sp;					/* symbol table entry */
@@ -375,9 +375,9 @@ public:
 
 	void reloadBuiltIns();
 	void initBuiltIns();
-	void initBuiltIns(BuiltinProto protos[]);
+	void initBuiltIns(const BuiltinProto protos[]);
 	void cleanupBuiltIns();
-	void cleanupBuiltIns(BuiltinProto protos[]);
+	void cleanupBuiltIns(const BuiltinProto protos[]);
 	void initFuncs();
 	void cleanupFuncs();
 	void initBytecode();
@@ -542,8 +542,8 @@ public:
 
 	FuncHash _functions;
 
-	Common::HashMap<int, LingoV4Bytecode *> _lingoV4;
-	Common::HashMap<int, LingoV4TheEntity *> _lingoV4TheEntity;
+	Common::HashMap<int, const LingoV4Bytecode *> _lingoV4;
+	Common::HashMap<int, const LingoV4TheEntity *> _lingoV4TheEntity;
 
 	uint _globalCounter;
 
diff --git a/engines/director/lingo/lingodec/names.cpp b/engines/director/lingo/lingodec/names.cpp
index de046882097..f06df5d0687 100644
--- a/engines/director/lingo/lingodec/names.cpp
+++ b/engines/director/lingo/lingodec/names.cpp
@@ -15,7 +15,7 @@ namespace LingoDec {
 namespace StandardNames {
 /* StandardNames */
 
-const char *opcodeNamesS[] = {
+const char *const opcodeNamesS[] = {
 	// single-byte
 	"unk00",
 	"ret",			// kOpRet			0x01
@@ -53,7 +53,7 @@ const char *opcodeNamesS[] = {
 	"swap",			// kOpSwap			0x21
 };
 
-const char *opcodeNamesM[] = {
+const char *const opcodeNamesM[] = {
 	// multi-byte
 	"unk40",
 	"pushint8",			// kOpPushInt8			0x41
@@ -109,7 +109,7 @@ const char *opcodeNamesM[] = {
 	"newobj",			// kOpNewObj			0x73
 };
 
-const char *binaryOpNames[] = {
+const char *const binaryOpNames[] = {
 	"unk00",
 	"unk01",
 	"unk02",
@@ -135,7 +135,7 @@ const char *binaryOpNames[] = {
 	"starts",	// kOpContains0Str	0x16
 };
 
-const char *chunkTypeNames[] = {
+const char *const chunkTypeNames[] = {
 	"unk00",
 	"char", // kChunkChar   0x01
 	"word", // kChunkWord   0x02
@@ -143,14 +143,14 @@ const char *chunkTypeNames[] = {
 	"line", // kChunkLine   0x04
 };
 
-const char *putTypeNames[] = {
+const char *const putTypeNames[] = {
 	"unk00",
 	"into",		// kPutInto		0x01
 	"after",	// kPutAfter	0x02
 	"before",	// kPutBefore	0x03
 };
 
-const char *moviePropertyNames[] = {
+const char *const moviePropertyNames[] = {
 	"floatPrecision",	// 0x00
 	"mouseDownScript",	// 0x01
 	"mouseUpScript",	// 0x02
@@ -165,7 +165,7 @@ const char *moviePropertyNames[] = {
 	"long date",		// 0x0b
 };
 
-const char *whenEventNames[] = {
+const char *const whenEventNames[] = {
 	"unk00",
 	"mouseDown",// 0x01
 	"mouseUp",	// 0x02
@@ -174,13 +174,13 @@ const char *whenEventNames[] = {
 	"timeOut",	// 0x05
 };
 
-const char *menuPropertyNames[] = {
+const char *const menuPropertyNames[] = {
 	"unk00",
 	"name",					// 0x01
 	"number of menuItems",	// 0x02
 };
 
-const char *menuItemPropertyNames[] = {
+const char *const menuItemPropertyNames[] = {
 	"unk00",
 	"name",		// 0x01
 	"checkMark",// 0x02
@@ -188,12 +188,12 @@ const char *menuItemPropertyNames[] = {
 	"script",	// 0x04
 };
 
-const char *soundPropertyNames[] = {
+const char *const soundPropertyNames[] = {
 	"unk00",
 	"volume", // 0x01
 };
 
-const char *spritePropertyNames[] = {
+const char *const spritePropertyNames[] = {
 	"unk00",
 	"type",					// 0x01
 	"backColor",			// 0x02
@@ -239,7 +239,7 @@ const char *spritePropertyNames[] = {
 	"name",					// 0x2a
 };
 
-const char *animationPropertyNames[] = {
+const char *const animationPropertyNames[] = {
 	"unk00",
 	"beepOn", 					// 0x01
 	"buttonStyle", 				// 0x02
@@ -285,7 +285,7 @@ const char *animationPropertyNames[] = {
 	"soundMixMedia",			// 0x28
 };
 
-const char *animation2PropertyNames[] = {
+const char *const animation2PropertyNames[] = {
 	"unk00",
 	"perFrameHook", 		// 0x01
 	"number of castMembers",// 0x02
@@ -294,7 +294,7 @@ const char *animation2PropertyNames[] = {
 	"number of xtras", 		// 0x05
 };
 
-const char *memberPropertyNames[] = {
+const char *const memberPropertyNames[] = {
 	"unk00",
 	"name",			// 0x01
 	"text",			// 0x02
diff --git a/engines/director/lingo/lingodec/names.h b/engines/director/lingo/lingodec/names.h
index 0caf7834fb4..17c16ad65be 100644
--- a/engines/director/lingo/lingodec/names.h
+++ b/engines/director/lingo/lingodec/names.h
@@ -20,21 +20,21 @@ namespace LingoDec {
 /* StandardNames */
 
 namespace StandardNames {
-extern const char *opcodeNamesS[];
-extern const char *opcodeNamesM[];
-extern const char *binaryOpNames[];
-extern const char *chunkTypeNames[];
-extern const char *putTypeNames[];
-
-extern const char *moviePropertyNames[];
-extern const char *whenEventNames[];
-extern const char *menuPropertyNames[];
-extern const char *menuItemPropertyNames[];
-extern const char *soundPropertyNames[];
-extern const char *spritePropertyNames[];
-extern const char *animationPropertyNames[];
-extern const char *animation2PropertyNames[];
-extern const char *memberPropertyNames[];
+extern const char *const opcodeNamesS[];
+extern const char *const opcodeNamesM[];
+extern const char *const binaryOpNames[];
+extern const char *const chunkTypeNames[];
+extern const char *const putTypeNames[];
+
+extern const char *const moviePropertyNames[];
+extern const char *const whenEventNames[];
+extern const char *const menuPropertyNames[];
+extern const char *const menuItemPropertyNames[];
+extern const char *const soundPropertyNames[];
+extern const char *const spritePropertyNames[];
+extern const char *const animationPropertyNames[];
+extern const char *const animation2PropertyNames[];
+extern const char *const memberPropertyNames[];
 
 Common::String getOpcodeName(byte id);
 }
diff --git a/engines/director/lingo/xlibs/aiff.cpp b/engines/director/lingo/xlibs/aiff.cpp
index 849a61d91c5..29c9f008b97 100644
--- a/engines/director/lingo/xlibs/aiff.cpp
+++ b/engines/director/lingo/xlibs/aiff.cpp
@@ -55,13 +55,13 @@
 
 namespace Director {
 
-const char *AiffXObj::xlibName = "aiff";
+const char *const AiffXObj::xlibName = "aiff";
 const XlibFileDesc AiffXObj::fileNames[] = {
 	{ "AIFF",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",   		AiffXObj::m_new,					0,	0,	400 },	// D4
 	{ "Duration",   AiffXObj::m_duration,				1,	1,	400 },	// D4
 	{ nullptr, nullptr, 0, 0, 0 }
diff --git a/engines/director/lingo/xlibs/aiff.h b/engines/director/lingo/xlibs/aiff.h
index 27d1f3c7029..d99d3b5a576 100644
--- a/engines/director/lingo/xlibs/aiff.h
+++ b/engines/director/lingo/xlibs/aiff.h
@@ -32,7 +32,7 @@ public:
 
 namespace AiffXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/applecdxobj.cpp b/engines/director/lingo/xlibs/applecdxobj.cpp
index c4456ac5681..f77e0e6a323 100644
--- a/engines/director/lingo/xlibs/applecdxobj.cpp
+++ b/engines/director/lingo/xlibs/applecdxobj.cpp
@@ -97,14 +97,14 @@
 
 namespace Director {
 
-const char *AppleCDXObj::xlibName = "AppleCD";
+const char *const AppleCDXObj::xlibName = "AppleCD";
 const XlibFileDesc AppleCDXObj::fileNames[] = {
 	{ "AppleCD",		nullptr },
 	{ "AppleCD XObj",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",					AppleCDXObj::m_new,			0,	0,	300 },	// D3
 	{ "dispose",				AppleCDXObj::m_dispose,			0,	0,	300 },	// D3
 	{ "Service",				AppleCDXObj::m_service,		0,	0,	300 },	// D4
diff --git a/engines/director/lingo/xlibs/applecdxobj.h b/engines/director/lingo/xlibs/applecdxobj.h
index f9be68e1400..445a469647b 100644
--- a/engines/director/lingo/xlibs/applecdxobj.h
+++ b/engines/director/lingo/xlibs/applecdxobj.h
@@ -44,7 +44,7 @@ public:
 
 namespace AppleCDXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/askuser.cpp b/engines/director/lingo/xlibs/askuser.cpp
index 678fe3dd28f..b287ed48d85 100644
--- a/engines/director/lingo/xlibs/askuser.cpp
+++ b/engines/director/lingo/xlibs/askuser.cpp
@@ -45,13 +45,13 @@ namespace Director {
  * SSSS               mAsk                                                                                          --Data to display in the message box.
 */
 
-const char *AskUser::xlibName = "AskUser";
+const char *const AskUser::xlibName = "AskUser";
 const XlibFileDesc AskUser::fileNames[] = {
 	{ "AskUser",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",					AskUser::m_new,			 0, 0,	400 },	// D4
 	{ "ask",					AskUser::m_ask,			 3, 3,	400 },	// D4
 	{ nullptr, nullptr, 0, 0, 0 }
diff --git a/engines/director/lingo/xlibs/askuser.h b/engines/director/lingo/xlibs/askuser.h
index 22925b3edcc..f607a471388 100644
--- a/engines/director/lingo/xlibs/askuser.h
+++ b/engines/director/lingo/xlibs/askuser.h
@@ -31,7 +31,7 @@ public:
 
 namespace AskUser {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/backdrop.cpp b/engines/director/lingo/xlibs/backdrop.cpp
index 0ef70aeac44..2338042f410 100644
--- a/engines/director/lingo/xlibs/backdrop.cpp
+++ b/engines/director/lingo/xlibs/backdrop.cpp
@@ -57,7 +57,7 @@ XS     mRegister, serialNumber
 
 namespace Director {
 
-const char *BackdropXObj::xlibName = "Backdrop";
+const char *const BackdropXObj::xlibName = "Backdrop";
 const XlibFileDesc BackdropXObj::fileNames[] = {
 	{ "Backdrop",		nullptr },
 	{ "backdrop.obj",	nullptr },
@@ -65,7 +65,7 @@ const XlibFileDesc BackdropXObj::fileNames[] = {
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				BackdropXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				BackdropXObj::m_dispose,		 0, 0,	400 },
 	{ "show",				BackdropXObj::m_show,		 0, 0,	400 },
@@ -82,7 +82,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
 
diff --git a/engines/director/lingo/xlibs/backdrop.h b/engines/director/lingo/xlibs/backdrop.h
index d8d23ccc2a5..849aae8e071 100644
--- a/engines/director/lingo/xlibs/backdrop.h
+++ b/engines/director/lingo/xlibs/backdrop.h
@@ -31,7 +31,7 @@ public:
 
 namespace BackdropXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/barakeobj.cpp b/engines/director/lingo/xlibs/barakeobj.cpp
index 680d0b102cb..a736ca029d9 100644
--- a/engines/director/lingo/xlibs/barakeobj.cpp
+++ b/engines/director/lingo/xlibs/barakeobj.cpp
@@ -43,13 +43,13 @@
 
 namespace Director {
 
-const char *BarakeObj::xlibName = "BarakeObj";
+const char *const BarakeObj::xlibName = "BarakeObj";
 const XlibFileDesc BarakeObj::fileNames[] = {
 	{ "BarakeObj",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",			BarakeObj::m_new,		0,	0,	400 },	// D4
 	{ "Clear",			BarakeObj::m_clear,		0,	0,	400 },	// D4
 	{ "Gpal",			BarakeObj::m_gpal,		3,	3,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/barakeobj.h b/engines/director/lingo/xlibs/barakeobj.h
index 5e972832da1..b5ca6ab4982 100644
--- a/engines/director/lingo/xlibs/barakeobj.h
+++ b/engines/director/lingo/xlibs/barakeobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace BarakeObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/batqt.cpp b/engines/director/lingo/xlibs/batqt.cpp
index 3815facb072..bc59f2f7d56 100644
--- a/engines/director/lingo/xlibs/batqt.cpp
+++ b/engines/director/lingo/xlibs/batqt.cpp
@@ -66,13 +66,13 @@
 namespace Director {
 
 // The name is different from the obj filename.
-const char *BatQT::xlibName = "batQT";
+const char *const BatQT::xlibName = "batQT";
 const XlibFileDesc BatQT::fileNames[] = {
 	{ "batQT",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",			BatQT::m_new,			0, 0,	400 },	// D4
 	{ "dispose",		BatQT::m_dispose,		1, 1,	400 },	// D4
 	{ "name",			BatQT::m_name,			0, 0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/batqt.h b/engines/director/lingo/xlibs/batqt.h
index 4a3bc6bb621..21eed138176 100644
--- a/engines/director/lingo/xlibs/batqt.h
+++ b/engines/director/lingo/xlibs/batqt.h
@@ -41,7 +41,7 @@ public:
 
 namespace BatQT {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/bimxobj.cpp b/engines/director/lingo/xlibs/bimxobj.cpp
index cb15183f47b..29ebd2ca542 100644
--- a/engines/director/lingo/xlibs/bimxobj.cpp
+++ b/engines/director/lingo/xlibs/bimxobj.cpp
@@ -47,14 +47,14 @@
 
 namespace Director {
 
-const char *BIMXObj::xlibName = "BIM";
+const char *const BIMXObj::xlibName = "BIM";
 const XlibFileDesc BIMXObj::fileNames[] = {
 	{ "FLC",	nullptr },
 	{ "BIM",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{"new",		BIMXObj::m_new, 0, 0, 400},
 	{"play",	BIMXObj::m_play, 3, 3, 400},
 	{"playTo",	BIMXObj::m_playTo, 4, 4, 400},
@@ -63,7 +63,7 @@ static MethodProto xlibMethods[] = {
 	{nullptr, nullptr, 0, 0, 0}
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
 
diff --git a/engines/director/lingo/xlibs/bimxobj.h b/engines/director/lingo/xlibs/bimxobj.h
index ccbcc799158..c5ee5017c57 100644
--- a/engines/director/lingo/xlibs/bimxobj.h
+++ b/engines/director/lingo/xlibs/bimxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace BIMXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/blitpict.cpp b/engines/director/lingo/xlibs/blitpict.cpp
index d50301d58c6..118d488218a 100644
--- a/engines/director/lingo/xlibs/blitpict.cpp
+++ b/engines/director/lingo/xlibs/blitpict.cpp
@@ -52,13 +52,13 @@ IIIIIIIIIIII     mSparkle            --Draws a sparkle from a bitmap
 
 namespace Director {
 
-const char *BlitPictXObj::xlibName = "BlitPict";
+const char *const BlitPictXObj::xlibName = "BlitPict";
 const XlibFileDesc BlitPictXObj::fileNames[] = {
 	{ "blitpict",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				BlitPictXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				BlitPictXObj::m_dispose,		 0, 0,	400 },
 	{ "name",				BlitPictXObj::m_name,		 0, 0,	400 },
diff --git a/engines/director/lingo/xlibs/blitpict.h b/engines/director/lingo/xlibs/blitpict.h
index 28def988036..cb7fdfa19ac 100644
--- a/engines/director/lingo/xlibs/blitpict.h
+++ b/engines/director/lingo/xlibs/blitpict.h
@@ -31,7 +31,7 @@ public:
 
 namespace BlitPictXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/cdromxobj.cpp b/engines/director/lingo/xlibs/cdromxobj.cpp
index 8d44a4af404..9b27f1effa2 100644
--- a/engines/director/lingo/xlibs/cdromxobj.cpp
+++ b/engines/director/lingo/xlibs/cdromxobj.cpp
@@ -171,14 +171,14 @@
 
 namespace Director {
 
-const char *CDROMXObj::xlibName = "AppleAudioCD";
+const char *const CDROMXObj::xlibName = "AppleAudioCD";
 const XlibFileDesc CDROMXObj::fileNames[] = {
 	{ "CD-ROM XObj",	nullptr },
 	{ "AppleAudioCD",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",			CDROMXObj::m_new,			 0, 0,	200 },	// D2
 	{ "Name",			CDROMXObj::m_name,		 	 0, 0,	200 },	// D2
 	{ "Play",			CDROMXObj::m_play,		 	 0, 0,	200 },	// D2
diff --git a/engines/director/lingo/xlibs/cdromxobj.h b/engines/director/lingo/xlibs/cdromxobj.h
index 7c3f05c5ffb..19fbca4701a 100644
--- a/engines/director/lingo/xlibs/cdromxobj.h
+++ b/engines/director/lingo/xlibs/cdromxobj.h
@@ -34,7 +34,7 @@ public:
 
 namespace CDROMXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/closebleedwindowxcmd.cpp b/engines/director/lingo/xlibs/closebleedwindowxcmd.cpp
index 2b5dc33abac..6152b21ae82 100644
--- a/engines/director/lingo/xlibs/closebleedwindowxcmd.cpp
+++ b/engines/director/lingo/xlibs/closebleedwindowxcmd.cpp
@@ -36,13 +36,13 @@
 
 namespace Director {
 
-const char *CloseBleedWindowXCMD::xlibName = "CloseBleedWindow";
+const char *const CloseBleedWindowXCMD::xlibName = "CloseBleedWindow";
 const XlibFileDesc CloseBleedWindowXCMD::fileNames[] = {
 	{ "CloseBleedWindow",	nullptr },
 	{ nullptr,				nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "CloseBleedWindow", CloseBleedWindowXCMD::m_CloseBleedWindow, -1, 0, 300, CBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/closebleedwindowxcmd.h b/engines/director/lingo/xlibs/closebleedwindowxcmd.h
index 4aaa727cb3f..cb0cb98cf5e 100644
--- a/engines/director/lingo/xlibs/closebleedwindowxcmd.h
+++ b/engines/director/lingo/xlibs/closebleedwindowxcmd.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace CloseBleedWindowXCMD {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/colorcursorxobj.cpp b/engines/director/lingo/xlibs/colorcursorxobj.cpp
index 96e1803a66c..3768bd6576e 100644
--- a/engines/director/lingo/xlibs/colorcursorxobj.cpp
+++ b/engines/director/lingo/xlibs/colorcursorxobj.cpp
@@ -44,13 +44,13 @@ X	mReleaseCursor -- CALL THIS BEFORE DISPOSING OBJECT or using the lingo <cursor
 
 namespace Director {
 
-const char *ColorCursorXObj::xlibName = "colorcursorxobj";
+const char *const ColorCursorXObj::xlibName = "colorcursorxobj";
 const XlibFileDesc ColorCursorXObj::fileNames[] = {
 	{ "CCURSOR.XOB",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				ColorCursorXObj::m_new,		 		0, 0,	400 },
 	{ "dispose",			ColorCursorXObj::m_dispose,		 	0, 0,	400 },
 	{ "getsetcursor",		ColorCursorXObj::m_getSetCursor,	1, 1,	400 },
diff --git a/engines/director/lingo/xlibs/colorcursorxobj.h b/engines/director/lingo/xlibs/colorcursorxobj.h
index d6d6a448d6b..2d4f922d388 100644
--- a/engines/director/lingo/xlibs/colorcursorxobj.h
+++ b/engines/director/lingo/xlibs/colorcursorxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace ColorCursorXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/colorxobj.cpp b/engines/director/lingo/xlibs/colorxobj.cpp
index 158db812e88..f8d829e29c7 100644
--- a/engines/director/lingo/xlibs/colorxobj.cpp
+++ b/engines/director/lingo/xlibs/colorxobj.cpp
@@ -59,13 +59,13 @@
 
 namespace Director {
 
-const char *ColorXObj::xlibName = "Color";
+const char *const ColorXObj::xlibName = "Color";
 const XlibFileDesc ColorXObj::fileNames[] = {
 	{ "color",		nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",					ColorXObj::m_new,					1, 1,	400 },	// D4
 	{ "dispose",				ColorXObj::m_dispose,				0, 0,	400 },	// D4
 	{ "setOurColors",			ColorXObj::m_setOurColors,			0, 0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/colorxobj.h b/engines/director/lingo/xlibs/colorxobj.h
index e34b28c9189..bcf35a5248d 100644
--- a/engines/director/lingo/xlibs/colorxobj.h
+++ b/engines/director/lingo/xlibs/colorxobj.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace ColorXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/consumer.cpp b/engines/director/lingo/xlibs/consumer.cpp
index 6259d821f0f..af5abcbaae1 100644
--- a/engines/director/lingo/xlibs/consumer.cpp
+++ b/engines/director/lingo/xlibs/consumer.cpp
@@ -52,13 +52,13 @@ I          mHackMenu                       --Hack to destroy menu
 
 namespace Director {
 
-const char *ConsumerXObj::xlibName = "Consumer";
+const char *const ConsumerXObj::xlibName = "Consumer";
 const XlibFileDesc ConsumerXObj::fileNames[] = {
 	{ "consumer",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",					ConsumerXObj::m_new,			 0, 0,	400 },	// D4
 	{ "dispose",				ConsumerXObj::m_dispose,		 0, 0,	400 },	// D4
 	{ "name",					ConsumerXObj::m_name,			 0, 0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/consumer.h b/engines/director/lingo/xlibs/consumer.h
index 797ae8fa40e..e47563da619 100644
--- a/engines/director/lingo/xlibs/consumer.h
+++ b/engines/director/lingo/xlibs/consumer.h
@@ -31,7 +31,7 @@ public:
 
 namespace ConsumerXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/cursorxobj.cpp b/engines/director/lingo/xlibs/cursorxobj.cpp
index bcdae07c6a7..98e477d1c06 100644
--- a/engines/director/lingo/xlibs/cursorxobj.cpp
+++ b/engines/director/lingo/xlibs/cursorxobj.cpp
@@ -44,13 +44,13 @@ XSS mSetCursor, cursorName, windowName --Sets the window cursor
 
 namespace Director {
 
-const char *CursorXObj::xlibName = "Cursor";
+const char *const CursorXObj::xlibName = "Cursor";
 const XlibFileDesc CursorXObj::fileNames[] = {
 	{ "CURSOR",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				CursorXObj::m_new,		 0, 0,	400 },
 	{ "dispose",			CursorXObj::m_dispose,		 0, 0,	400 },
 	{ "setCursor",			CursorXObj::m_setCursor,		 2, 2,	400 },
diff --git a/engines/director/lingo/xlibs/cursorxobj.h b/engines/director/lingo/xlibs/cursorxobj.h
index 596dfb09da3..d4447076899 100644
--- a/engines/director/lingo/xlibs/cursorxobj.h
+++ b/engines/director/lingo/xlibs/cursorxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace CursorXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/darkenscreen.cpp b/engines/director/lingo/xlibs/darkenscreen.cpp
index 06ffd343c3a..bfceb30d733 100644
--- a/engines/director/lingo/xlibs/darkenscreen.cpp
+++ b/engines/director/lingo/xlibs/darkenscreen.cpp
@@ -39,13 +39,13 @@
 
 namespace Director {
 
-const char *DarkenScreen::xlibName = "darkenScreen";
+const char *const DarkenScreen::xlibName = "darkenScreen";
 const XlibFileDesc DarkenScreen::fileNames[] = {
 	{ "darkenScreen",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "darkenScreen", DarkenScreen::m_darkenscreen, 0, 0, 300, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/darkenscreen.h b/engines/director/lingo/xlibs/darkenscreen.h
index 934c2a6db3f..9a5de418e88 100644
--- a/engines/director/lingo/xlibs/darkenscreen.h
+++ b/engines/director/lingo/xlibs/darkenscreen.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace DarkenScreen {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/dateutil.cpp b/engines/director/lingo/xlibs/dateutil.cpp
index cc27782aab5..086d1004fa5 100644
--- a/engines/director/lingo/xlibs/dateutil.cpp
+++ b/engines/director/lingo/xlibs/dateutil.cpp
@@ -45,13 +45,13 @@ I	mGetSecond -- Second in number
 
 namespace Director {
 
-const char *DateUtilXObj::xlibName = "DateUtil";
+const char *const DateUtilXObj::xlibName = "DateUtil";
 const XlibFileDesc DateUtilXObj::fileNames[] = {
 	{ "DateUtil",   nullptr },
 	{ nullptr,        nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				DateUtilXObj::m_new,		 0, 0,	400 },
 	{ "getTime",				DateUtilXObj::m_getTime,		 0, 0,	400 },
 	{ "getDate",				DateUtilXObj::m_getDate,		 0, 0,	400 },
@@ -60,7 +60,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/dateutil.h b/engines/director/lingo/xlibs/dateutil.h
index 1cef585ce3e..904760f1285 100644
--- a/engines/director/lingo/xlibs/dateutil.h
+++ b/engines/director/lingo/xlibs/dateutil.h
@@ -31,7 +31,7 @@ public:
 
 namespace DateUtilXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/developerStack.cpp b/engines/director/lingo/xlibs/developerStack.cpp
index 7b44c37876d..89fd20ebeb0 100644
--- a/engines/director/lingo/xlibs/developerStack.cpp
+++ b/engines/director/lingo/xlibs/developerStack.cpp
@@ -131,13 +131,13 @@
 
 namespace Director {
 
-const char *DeveloperStack::xlibName = "SetVolume";
+const char *const DeveloperStack::xlibName = "SetVolume";
 const XlibFileDesc DeveloperStack::fileNames[] = {
 	{ "SetVolume",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "SetVolume", DeveloperStack::b_setvolume, 2, 2, 300, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/developerStack.h b/engines/director/lingo/xlibs/developerStack.h
index c4cab016e38..eee7167ef2a 100644
--- a/engines/director/lingo/xlibs/developerStack.h
+++ b/engines/director/lingo/xlibs/developerStack.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace DeveloperStack {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/dialogsxobj.cpp b/engines/director/lingo/xlibs/dialogsxobj.cpp
index 1c0450bd83c..dac4b5231f3 100644
--- a/engines/director/lingo/xlibs/dialogsxobj.cpp
+++ b/engines/director/lingo/xlibs/dialogsxobj.cpp
@@ -52,7 +52,7 @@
 
 namespace Director {
 
-const char *DialogsXObj::xlibNames[] = {
+const char *const DialogsXObj::xlibNames[] = {
 	"DialogS",
 	nullptr
 };
@@ -63,7 +63,7 @@ const XlibFileDesc DialogsXObj::fileNames[] = {
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",               DialogsXObj::m_new,              0, 0,  400 },  // D4
 	{ "GetFile",           DialogsXObj::m_getFile,          3, 3,  400 },  // D4
 	{ "PutFile",           DialogsXObj::m_putFile,          3, 3,  400 },  // D4
diff --git a/engines/director/lingo/xlibs/dialogsxobj.h b/engines/director/lingo/xlibs/dialogsxobj.h
index b63e6c397fe..b55c794130a 100644
--- a/engines/director/lingo/xlibs/dialogsxobj.h
+++ b/engines/director/lingo/xlibs/dialogsxobj.h
@@ -30,7 +30,7 @@ public:
 
 namespace DialogsXObj {
 
-extern const char *xlibNames[];
+extern const char *const xlibNames[];
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/dirutil.cpp b/engines/director/lingo/xlibs/dirutil.cpp
index 51ae7313fdb..b628bf12608 100644
--- a/engines/director/lingo/xlibs/dirutil.cpp
+++ b/engines/director/lingo/xlibs/dirutil.cpp
@@ -48,13 +48,13 @@ XI     mSetErrorMode,mode      --sets windoze error mode
 
 namespace Director {
 
-const char *DirUtilXObj::xlibName = "DirUtil";
+const char *const DirUtilXObj::xlibName = "DirUtil";
 const XlibFileDesc DirUtilXObj::fileNames[] = {
 	{ "dirutil",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				DirUtilXObj::m_new,		 0, 0,	400 },	// D4
 	{ "dispose",				DirUtilXObj::m_dispose,		 0, 0,	400 },	// D4
 	{ "name",				DirUtilXObj::m_name,		 0, 0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/dirutil.h b/engines/director/lingo/xlibs/dirutil.h
index 26fb20d4494..6f368d7aa4d 100644
--- a/engines/director/lingo/xlibs/dirutil.h
+++ b/engines/director/lingo/xlibs/dirutil.h
@@ -31,7 +31,7 @@ public:
 
 namespace DirUtilXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/dllglue.cpp b/engines/director/lingo/xlibs/dllglue.cpp
index cb64d0084da..d6eb3c048d6 100644
--- a/engines/director/lingo/xlibs/dllglue.cpp
+++ b/engines/director/lingo/xlibs/dllglue.cpp
@@ -50,13 +50,13 @@ X      mDebug              --write debugging info to message window
 
 namespace Director {
 
-const char *DLLGlueXObj::xlibName = "DLLGlue";
+const char *const DLLGlueXObj::xlibName = "DLLGlue";
 const XlibFileDesc DLLGlueXObj::fileNames[] = {
 	{ "DLLGLUE",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				DLLGlueXObj::m_new,		 4, 4,	400 },
 	{ "name",				DLLGlueXObj::m_name,		 0, 0,	400 },
 	{ "call",				DLLGlueXObj::m_call,		 0, 0,	400 },
@@ -69,7 +69,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/dllglue.h b/engines/director/lingo/xlibs/dllglue.h
index 829dcc28dfb..89f14595bee 100644
--- a/engines/director/lingo/xlibs/dllglue.h
+++ b/engines/director/lingo/xlibs/dllglue.h
@@ -31,7 +31,7 @@ public:
 
 namespace DLLGlueXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/dpwavi.cpp b/engines/director/lingo/xlibs/dpwavi.cpp
index fddf2bea091..1346d243376 100644
--- a/engines/director/lingo/xlibs/dpwavi.cpp
+++ b/engines/director/lingo/xlibs/dpwavi.cpp
@@ -47,13 +47,13 @@ XII    mVerb msg, qtPacker -- do something
 
 namespace Director {
 
-const char *DPWAVIXObj::xlibName = "DPWAVI";
+const char *const DPWAVIXObj::xlibName = "DPWAVI";
 const XlibFileDesc DPWAVIXObj::fileNames[] = {
 	{ "DPWAVI",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "startup",				DPWAVIXObj::m_startup,		 0, 0,	300 },
 	{ "quit",				DPWAVIXObj::m_quit,		 0, 0,	300 },
 	{ "new",				DPWAVIXObj::m_new,		 1, 1,	300 },
@@ -62,7 +62,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
 
diff --git a/engines/director/lingo/xlibs/dpwavi.h b/engines/director/lingo/xlibs/dpwavi.h
index 0b07c5f1298..5101b29f861 100644
--- a/engines/director/lingo/xlibs/dpwavi.h
+++ b/engines/director/lingo/xlibs/dpwavi.h
@@ -31,7 +31,7 @@ public:
 
 namespace DPWAVIXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/dpwqtw.cpp b/engines/director/lingo/xlibs/dpwqtw.cpp
index e3d79bbd691..6bcaa71f8f6 100644
--- a/engines/director/lingo/xlibs/dpwqtw.cpp
+++ b/engines/director/lingo/xlibs/dpwqtw.cpp
@@ -47,13 +47,13 @@ XII    mVerb msg, qtPacker -- do something
 
 namespace Director {
 
-const char *DPWQTWXObj::xlibName = "DPWQTW";
+const char *const DPWQTWXObj::xlibName = "DPWQTW";
 const XlibFileDesc DPWQTWXObj::fileNames[] = {
 	{ "DPWQTW",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "startup",				DPWQTWXObj::m_startup,		 0, 0,	300 },
 	{ "quit",				DPWQTWXObj::m_quit,		 0, 0,	300 },
 	{ "new",				DPWQTWXObj::m_new,		 1, 1,	300 },
@@ -62,7 +62,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
 
diff --git a/engines/director/lingo/xlibs/dpwqtw.h b/engines/director/lingo/xlibs/dpwqtw.h
index 0a3cce85656..c70096d5bb6 100644
--- a/engines/director/lingo/xlibs/dpwqtw.h
+++ b/engines/director/lingo/xlibs/dpwqtw.h
@@ -31,7 +31,7 @@ public:
 
 namespace DPWQTWXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/draw.cpp b/engines/director/lingo/xlibs/draw.cpp
index 01d55e97c6b..41524b87552 100644
--- a/engines/director/lingo/xlibs/draw.cpp
+++ b/engines/director/lingo/xlibs/draw.cpp
@@ -89,13 +89,13 @@
 
 namespace Director {
 
-const char *DrawXObj::xlibName = "Draw";
+const char *const DrawXObj::xlibName = "Draw";
 const XlibFileDesc DrawXObj::fileNames[] = {
 	{ "DRAW",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "New",						DrawXObj::m_new,						0,	0,	400 },	// D4
 	{ "Dispose",					DrawXObj::m_dispose,					0,	0,	400 },	// D4
 	{ "Line",						DrawXObj::m_line,						4,	4,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/draw.h b/engines/director/lingo/xlibs/draw.h
index ea9d41d5275..e2dc33db43f 100644
--- a/engines/director/lingo/xlibs/draw.h
+++ b/engines/director/lingo/xlibs/draw.h
@@ -31,7 +31,7 @@ public:
 
 namespace DrawXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/ednox.cpp b/engines/director/lingo/xlibs/ednox.cpp
index 80386d5b8ff..8171ec8560b 100644
--- a/engines/director/lingo/xlibs/ednox.cpp
+++ b/engines/director/lingo/xlibs/ednox.cpp
@@ -64,13 +64,13 @@
 
 namespace Director {
 
-const char *Ednox::xlibName = "Ednox";
+const char *const Ednox::xlibName = "Ednox";
 const XlibFileDesc Ednox::fileNames[] = {
 	{ "Ednox",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "mNew",				Ednox::m_new,					0,	0,	300 },	// d3
 	{ "mDispose",			Ednox::m_dispose,				0,	0,	300 },	// d3
 	{ "mName",				Ednox::m_name,					0,	0,	300 },	// d3
diff --git a/engines/director/lingo/xlibs/ednox.h b/engines/director/lingo/xlibs/ednox.h
index 93264ec1628..3eaf0fe7464 100644
--- a/engines/director/lingo/xlibs/ednox.h
+++ b/engines/director/lingo/xlibs/ednox.h
@@ -31,7 +31,7 @@ public:
 
 namespace Ednox {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/eventq.cpp b/engines/director/lingo/xlibs/eventq.cpp
index 7f08e1c304b..6b361bd28b9 100644
--- a/engines/director/lingo/xlibs/eventq.cpp
+++ b/engines/director/lingo/xlibs/eventq.cpp
@@ -49,7 +49,7 @@
 
 namespace Director {
 
-const char *EventQXObj::xlibNames[] = {
+const char *const EventQXObj::xlibNames[] = {
 	"EventQ",
 	nullptr
 };
@@ -59,7 +59,7 @@ const XlibFileDesc EventQXObj::fileNames[] = {
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",               EventQXObj::m_new,              0, 0,  400 },  // D4
 	{ "Dispose",           EventQXObj::m_dispose,          0, 0,  400 },  // D4
 	{ "BufferEvents",      EventQXObj::m_bufferEvents,     0, 0,  400 },  // D4
diff --git a/engines/director/lingo/xlibs/eventq.h b/engines/director/lingo/xlibs/eventq.h
index 4e3934d4e09..7ed6ec09ac2 100644
--- a/engines/director/lingo/xlibs/eventq.h
+++ b/engines/director/lingo/xlibs/eventq.h
@@ -30,7 +30,7 @@ public:
 
 namespace EventQXObj {
 
-extern const char *xlibNames[];
+extern const char *const xlibNames[];
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/fadegammadownxcmd.cpp b/engines/director/lingo/xlibs/fadegammadownxcmd.cpp
index d90cc41ae55..884c7e4d81f 100644
--- a/engines/director/lingo/xlibs/fadegammadownxcmd.cpp
+++ b/engines/director/lingo/xlibs/fadegammadownxcmd.cpp
@@ -36,13 +36,13 @@
 
 namespace Director {
 
-const char *FadeGammaDownXCMD::xlibName = "FadeGammaDown";
+const char *const FadeGammaDownXCMD::xlibName = "FadeGammaDown";
 const XlibFileDesc FadeGammaDownXCMD::fileNames[] = {
 	{ "FadeGammaDown",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "FadeGammaDown", FadeGammaDownXCMD::m_FadeGammaDown, -1, 0, 400, CBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/fadegammadownxcmd.h b/engines/director/lingo/xlibs/fadegammadownxcmd.h
index 5714b73fbbf..46f19d3e3b9 100644
--- a/engines/director/lingo/xlibs/fadegammadownxcmd.h
+++ b/engines/director/lingo/xlibs/fadegammadownxcmd.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace FadeGammaDownXCMD {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/fadegammaupxcmd.cpp b/engines/director/lingo/xlibs/fadegammaupxcmd.cpp
index ce6fbdcf103..5544b19e4d3 100644
--- a/engines/director/lingo/xlibs/fadegammaupxcmd.cpp
+++ b/engines/director/lingo/xlibs/fadegammaupxcmd.cpp
@@ -36,13 +36,13 @@
 
 namespace Director {
 
-const char *FadeGammaUpXCMD::xlibName = "FadeGammaUp";
+const char *const FadeGammaUpXCMD::xlibName = "FadeGammaUp";
 const XlibFileDesc FadeGammaUpXCMD::fileNames[] = {
 	{ "FadeGammaUp",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "FadeGammaUp", FadeGammaUpXCMD::m_FadeGammaUp, -1, 0, 400, CBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/fadegammaupxcmd.h b/engines/director/lingo/xlibs/fadegammaupxcmd.h
index 4581f1398f3..f825f36da3f 100644
--- a/engines/director/lingo/xlibs/fadegammaupxcmd.h
+++ b/engines/director/lingo/xlibs/fadegammaupxcmd.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace FadeGammaUpXCMD {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/fadegammaxcmd.cpp b/engines/director/lingo/xlibs/fadegammaxcmd.cpp
index a92bea53b11..c6611442ff6 100644
--- a/engines/director/lingo/xlibs/fadegammaxcmd.cpp
+++ b/engines/director/lingo/xlibs/fadegammaxcmd.cpp
@@ -36,13 +36,13 @@
 
 namespace Director {
 
-const char *FadeGammaXCMD::xlibName = "FadeGamma";
+const char *const FadeGammaXCMD::xlibName = "FadeGamma";
 const XlibFileDesc FadeGammaXCMD::fileNames[] = {
 	{ "FadeGamma",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "FadeGamma", FadeGammaXCMD::m_FadeGamma, -1, 0, 400, CBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/fadegammaxcmd.h b/engines/director/lingo/xlibs/fadegammaxcmd.h
index 8b56ac690c9..8ca006caf5e 100644
--- a/engines/director/lingo/xlibs/fadegammaxcmd.h
+++ b/engines/director/lingo/xlibs/fadegammaxcmd.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace FadeGammaXCMD {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/fedracul.cpp b/engines/director/lingo/xlibs/fedracul.cpp
index 65d08e4b4a3..9a1ca2cdd4b 100644
--- a/engines/director/lingo/xlibs/fedracul.cpp
+++ b/engines/director/lingo/xlibs/fedracul.cpp
@@ -51,13 +51,13 @@
 
 namespace Director {
 
-const char *FEDraculXObj::xlibName = "FEDracul";
+const char *const FEDraculXObj::xlibName = "FEDracul";
 const XlibFileDesc FEDraculXObj::fileNames[] = {
 	{ "FEDracul",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				FEDraculXObj::m_new,				0,	0,	400 },	// D4
 	{ "AddToInventory",		FEDraculXObj::m_AddToInventory,		3,	3,	400 },	// D4
 	{ "CreateInventory",	FEDraculXObj::m_CreateInventory,	1,	1,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/fedracul.h b/engines/director/lingo/xlibs/fedracul.h
index b2d00313f59..9d930a1903b 100644
--- a/engines/director/lingo/xlibs/fedracul.h
+++ b/engines/director/lingo/xlibs/fedracul.h
@@ -32,7 +32,7 @@ public:
 
 namespace FEDraculXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/feimasks.cpp b/engines/director/lingo/xlibs/feimasks.cpp
index 1ef310d8193..3a2a931bc9d 100644
--- a/engines/director/lingo/xlibs/feimasks.cpp
+++ b/engines/director/lingo/xlibs/feimasks.cpp
@@ -43,13 +43,13 @@
 
 namespace Director {
 
-const char *FEIMasksXObj::xlibName = "FEIMasks";
+const char *const FEIMasksXObj::xlibName = "FEIMasks";
 const XlibFileDesc FEIMasksXObj::fileNames[] = {
 	{ "FEIMasks",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",   FEIMasksXObj::m_new,					0,	0,	400 },	// D4
 	{ "MaskID",   FEIMasksXObj::m_MaskID,			2,	2,	400 },	// D4
 	{ nullptr, nullptr, 0, 0, 0 }
diff --git a/engines/director/lingo/xlibs/feimasks.h b/engines/director/lingo/xlibs/feimasks.h
index 121188385cf..190af160f57 100644
--- a/engines/director/lingo/xlibs/feimasks.h
+++ b/engines/director/lingo/xlibs/feimasks.h
@@ -32,7 +32,7 @@ public:
 
 namespace FEIMasksXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/feiprefs.cpp b/engines/director/lingo/xlibs/feiprefs.cpp
index 1fd3a4aac6f..1b5485539c6 100644
--- a/engines/director/lingo/xlibs/feiprefs.cpp
+++ b/engines/director/lingo/xlibs/feiprefs.cpp
@@ -47,13 +47,13 @@
 
 namespace Director {
 
-const char *FEIPrefsXObj::xlibName = "FEIPrefs";
+const char *const FEIPrefsXObj::xlibName = "FEIPrefs";
 const XlibFileDesc FEIPrefsXObj::fileNames[] = {
 	{ "feiprefs",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",   FEIPrefsXObj::m_new,							0,	0,	400 },	// D4
 	{ "PrefAppName",   FEIPrefsXObj::m_prefAppName,			2,	2,	400 },	// D4
 	{ "PrefReadString",   FEIPrefsXObj::m_prefReadString,	3,	3,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/feiprefs.h b/engines/director/lingo/xlibs/feiprefs.h
index 0c0d158e67e..87f32fe3d06 100644
--- a/engines/director/lingo/xlibs/feiprefs.h
+++ b/engines/director/lingo/xlibs/feiprefs.h
@@ -32,7 +32,7 @@ public:
 
 namespace FEIPrefsXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/fileexists.cpp b/engines/director/lingo/xlibs/fileexists.cpp
index d86be02fb22..cf1e15f8d3e 100644
--- a/engines/director/lingo/xlibs/fileexists.cpp
+++ b/engines/director/lingo/xlibs/fileexists.cpp
@@ -42,13 +42,13 @@
 
 namespace Director {
 
-const char *FileExists::xlibName = "FileExists";
+const char *const FileExists::xlibName = "FileExists";
 const XlibFileDesc FileExists::fileNames[] = {
 	{ "FileExists",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "FileExists", FileExists::m_fileexists, 1, 1, 300, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/fileexists.h b/engines/director/lingo/xlibs/fileexists.h
index 45aa292da51..5f144aadd8c 100644
--- a/engines/director/lingo/xlibs/fileexists.h
+++ b/engines/director/lingo/xlibs/fileexists.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace FileExists {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/fileio.cpp b/engines/director/lingo/xlibs/fileio.cpp
index 92d67cfbd90..3e00eb30515 100644
--- a/engines/director/lingo/xlibs/fileio.cpp
+++ b/engines/director/lingo/xlibs/fileio.cpp
@@ -134,7 +134,7 @@ delete object me -- deletes the open file
 
 namespace Director {
 
-const char *FileIO::xlibName = "FileIO";
+const char *const FileIO::xlibName = "FileIO";
 const XlibFileDesc FileIO::fileNames[] = {
 	{ "FileIO",		nullptr },
 	{ "shFILEIO",	nullptr }, // TD loads this up using openXLib("@:shFILEIO.DLL")
@@ -142,7 +142,7 @@ const XlibFileDesc FileIO::fileNames[] = {
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	// XObject
 	{ "delete",					FileIO::m_delete,			 0, 0,	200 },	// D2
 	{ "error",					FileIO::m_error,			 1, 1,	200 },	// D2
@@ -174,7 +174,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ "getOSDirectory", FileIO::m_getOSDirectory, 0, 0, 500, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/fileio.h b/engines/director/lingo/xlibs/fileio.h
index 34dff18335b..cbfc66d6397 100644
--- a/engines/director/lingo/xlibs/fileio.h
+++ b/engines/director/lingo/xlibs/fileio.h
@@ -74,7 +74,7 @@ public:
 };
 
 namespace FileIO {
-	extern const char *xlibName;
+	extern const char *const xlibName;
 	extern const XlibFileDesc fileNames[];
 
 	void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/findereventsxcmd.cpp b/engines/director/lingo/xlibs/findereventsxcmd.cpp
index e957f4ca678..a9240320803 100644
--- a/engines/director/lingo/xlibs/findereventsxcmd.cpp
+++ b/engines/director/lingo/xlibs/findereventsxcmd.cpp
@@ -36,13 +36,13 @@
 
 namespace Director {
 
-const char *FinderEventsXCMD::xlibName = "FinderEvents";
+const char *const FinderEventsXCMD::xlibName = "FinderEvents";
 const XlibFileDesc FinderEventsXCMD::fileNames[] = {
 	{ "FinderEvents",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "FinderEvents", FinderEventsXCMD::m_FinderEvents, -1, 0, 400, CBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/findereventsxcmd.h b/engines/director/lingo/xlibs/findereventsxcmd.h
index 836f408a828..ba6fd409e74 100644
--- a/engines/director/lingo/xlibs/findereventsxcmd.h
+++ b/engines/director/lingo/xlibs/findereventsxcmd.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace FinderEventsXCMD {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/findfolder.cpp b/engines/director/lingo/xlibs/findfolder.cpp
index 211ba8c4986..edb39b23f64 100644
--- a/engines/director/lingo/xlibs/findfolder.cpp
+++ b/engines/director/lingo/xlibs/findfolder.cpp
@@ -90,13 +90,13 @@
 
 namespace Director {
 
-const char *FindFolder::xlibName = "FindFolder";
+const char *const FindFolder::xlibName = "FindFolder";
 const XlibFileDesc FindFolder::fileNames[] = {
 	{ "FindFolder",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "FindFolder", FindFolder::m_findfolder, 0, 2, 300, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/findfolder.h b/engines/director/lingo/xlibs/findfolder.h
index 33ee8b689b2..b48c1eb6f29 100644
--- a/engines/director/lingo/xlibs/findfolder.h
+++ b/engines/director/lingo/xlibs/findfolder.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace FindFolder {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/findsys.cpp b/engines/director/lingo/xlibs/findsys.cpp
index 7fc84e70401..e78ccf1af59 100644
--- a/engines/director/lingo/xlibs/findsys.cpp
+++ b/engines/director/lingo/xlibs/findsys.cpp
@@ -48,13 +48,13 @@
 namespace Director {
 
 // The name is different from the obj filename.
-const char *FindSys::xlibName = "FindSys";
+const char *const FindSys::xlibName = "FindSys";
 const XlibFileDesc FindSys::fileNames[] = {
 	{ "FindSys",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",		FindSys::m_new,			 0, 0,	400 },	// D4
 	{ "do",			FindSys::m_do,			 0, 0,  400 },	// D4
 	{ nullptr, nullptr, 0, 0, 0 }
diff --git a/engines/director/lingo/xlibs/findsys.h b/engines/director/lingo/xlibs/findsys.h
index ad0070bd916..c3a0bc67187 100644
--- a/engines/director/lingo/xlibs/findsys.h
+++ b/engines/director/lingo/xlibs/findsys.h
@@ -31,7 +31,7 @@ public:
 
 namespace FindSys {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/findwin.cpp b/engines/director/lingo/xlibs/findwin.cpp
index 97865833dd5..e243adda7d5 100644
--- a/engines/director/lingo/xlibs/findwin.cpp
+++ b/engines/director/lingo/xlibs/findwin.cpp
@@ -45,13 +45,13 @@ S      mDo                 --Return the System directory path as a string
 namespace Director {
 
 // The name is different from the obj filename.
-const char *FindWin::xlibName = "FindWin";
+const char *const FindWin::xlibName = "FindWin";
 const XlibFileDesc FindWin::fileNames[] = {
 	{ "FindWin",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",		FindWin::m_new,			 0, 0,	400 },	// D4
 	{ "do",			FindWin::m_do,			 0, 0,  400 },	// D4
 	{ nullptr, nullptr, 0, 0, 0 }
diff --git a/engines/director/lingo/xlibs/findwin.h b/engines/director/lingo/xlibs/findwin.h
index 1224b93c2b9..b10d914302f 100644
--- a/engines/director/lingo/xlibs/findwin.h
+++ b/engines/director/lingo/xlibs/findwin.h
@@ -31,7 +31,7 @@ public:
 
 namespace FindWin {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/flushxobj.cpp b/engines/director/lingo/xlibs/flushxobj.cpp
index 2057ffa16c8..03d0bfc214f 100644
--- a/engines/director/lingo/xlibs/flushxobj.cpp
+++ b/engines/director/lingo/xlibs/flushxobj.cpp
@@ -61,7 +61,7 @@
 
 namespace Director {
 
-const char *FlushXObj::xlibNames[] = {
+const char *const FlushXObj::xlibNames[] = {
 	"FlushXObj",
 	"Johnny",
 	nullptr,
@@ -75,7 +75,7 @@ const XlibFileDesc FlushXObj::fileNames[] = {
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				FlushXObj::m_new,				 0, 0,	300 },	// D3
 	{ "AddToMask",			FlushXObj::m_addToMask,			 2, 2,	400 },	// D4
 	{ "ClearMask",			FlushXObj::m_clearMask,			 0, 0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/flushxobj.h b/engines/director/lingo/xlibs/flushxobj.h
index 113227abff2..6b935b5c247 100644
--- a/engines/director/lingo/xlibs/flushxobj.h
+++ b/engines/director/lingo/xlibs/flushxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace FlushXObj {
 
-extern const char *xlibNames[];
+extern const char *const xlibNames[];
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/fplayxobj.cpp b/engines/director/lingo/xlibs/fplayxobj.cpp
index 766a7621ab0..8053b8ce695 100644
--- a/engines/director/lingo/xlibs/fplayxobj.cpp
+++ b/engines/director/lingo/xlibs/fplayxobj.cpp
@@ -41,14 +41,14 @@
 
 namespace Director {
 
-const char *FPlayXObj::xlibName = "FPlay";
+const char *const FPlayXObj::xlibName = "FPlay";
 const XlibFileDesc FPlayXObj::fileNames[] = {
 	{ "FPlayXObj",	nullptr },
 	{ "FPlay",		nullptr },
 	{ nullptr,		nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "FPlay",			FPlayXObj::b_fplay,		   -1,0, 200, CBLTIN },	// XCMD
 	{ "CopySnd",		FPlayXObj::b_copysnd,	   -1,0, 200, CBLTIN },	// XCMD
 	{ "EraseSnd",		FPlayXObj::b_erasesnd,	   -1,0, 200, CBLTIN },	// XCMD
diff --git a/engines/director/lingo/xlibs/fplayxobj.h b/engines/director/lingo/xlibs/fplayxobj.h
index 408a16f532d..4436a18e9ff 100644
--- a/engines/director/lingo/xlibs/fplayxobj.h
+++ b/engines/director/lingo/xlibs/fplayxobj.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace FPlayXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/fsutil.cpp b/engines/director/lingo/xlibs/fsutil.cpp
index b7ebcdb217f..3ca635c07cd 100644
--- a/engines/director/lingo/xlibs/fsutil.cpp
+++ b/engines/director/lingo/xlibs/fsutil.cpp
@@ -45,13 +45,13 @@ IS mMakeFolder, <FolderPath>
 
 namespace Director {
 
-const char *FSUtilXObj::xlibName = "FSUtil";
+const char *const FSUtilXObj::xlibName = "FSUtil";
 const XlibFileDesc FSUtilXObj::fileNames[] = {
 	{ "FSUtil",   nullptr },
 	{ nullptr,        nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				FSUtilXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				FSUtilXObj::m_dispose,		 0, 0,	400 },
 	{ "getSystemFolder",				FSUtilXObj::m_getSystemFolder,		 0, 0,	400 },
@@ -59,7 +59,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/fsutil.h b/engines/director/lingo/xlibs/fsutil.h
index 8fa05d51335..c7cba7bfdfc 100644
--- a/engines/director/lingo/xlibs/fsutil.h
+++ b/engines/director/lingo/xlibs/fsutil.h
@@ -31,7 +31,7 @@ public:
 
 namespace FSUtilXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/genutils.cpp b/engines/director/lingo/xlibs/genutils.cpp
index 1db59bfcdf6..cc2c4a46512 100644
--- a/engines/director/lingo/xlibs/genutils.cpp
+++ b/engines/director/lingo/xlibs/genutils.cpp
@@ -50,13 +50,13 @@ III     mClickCursor         --Moves the cursor to x,y and clicks it.
 
 namespace Director {
 
-const char *GenUtilsXObj::xlibName = "GenUtils";
+const char *const GenUtilsXObj::xlibName = "GenUtils";
 const XlibFileDesc GenUtilsXObj::fileNames[] = {
 	{ "GENUTILS",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				GenUtilsXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				GenUtilsXObj::m_dispose,		 0, 0,	400 },
 	{ "name",				GenUtilsXObj::m_name,		 0, 0,	400 },
@@ -68,7 +68,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
 
diff --git a/engines/director/lingo/xlibs/genutils.h b/engines/director/lingo/xlibs/genutils.h
index af3b60e8aa0..3360aa7f48d 100644
--- a/engines/director/lingo/xlibs/genutils.h
+++ b/engines/director/lingo/xlibs/genutils.h
@@ -31,7 +31,7 @@ public:
 
 namespace GenUtilsXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/getscreenrectsxfcn.cpp b/engines/director/lingo/xlibs/getscreenrectsxfcn.cpp
index 4c0b677823e..1727f56931e 100644
--- a/engines/director/lingo/xlibs/getscreenrectsxfcn.cpp
+++ b/engines/director/lingo/xlibs/getscreenrectsxfcn.cpp
@@ -36,13 +36,13 @@
 
 namespace Director {
 
-const char *GetScreenRectsXFCN::xlibName = "GetScreenRects";
+const char *const GetScreenRectsXFCN::xlibName = "GetScreenRects";
 const XlibFileDesc GetScreenRectsXFCN::fileNames[] = {
 	{ "GetScreenRects",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "GetScreenRects", GetScreenRectsXFCN::m_GetScreenRects, -1, 0, 300, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/getscreenrectsxfcn.h b/engines/director/lingo/xlibs/getscreenrectsxfcn.h
index e9aecbbb5b5..78b5c613d57 100644
--- a/engines/director/lingo/xlibs/getscreenrectsxfcn.h
+++ b/engines/director/lingo/xlibs/getscreenrectsxfcn.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace GetScreenRectsXFCN {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/getscreensizexfcn.cpp b/engines/director/lingo/xlibs/getscreensizexfcn.cpp
index 296cec544fa..91261a5a199 100644
--- a/engines/director/lingo/xlibs/getscreensizexfcn.cpp
+++ b/engines/director/lingo/xlibs/getscreensizexfcn.cpp
@@ -36,13 +36,13 @@
 
 namespace Director {
 
-const char *GetScreenSizeXFCN::xlibName = "GetScreenSize";
+const char *const GetScreenSizeXFCN::xlibName = "GetScreenSize";
 const XlibFileDesc GetScreenSizeXFCN::fileNames[] = {
 	{ "GetScreenSize",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "GetScreenSize", GetScreenSizeXFCN::m_GetScreenSize, -1, 0, 300, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/getscreensizexfcn.h b/engines/director/lingo/xlibs/getscreensizexfcn.h
index b77e69a2cfe..07266d1055a 100644
--- a/engines/director/lingo/xlibs/getscreensizexfcn.h
+++ b/engines/director/lingo/xlibs/getscreensizexfcn.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace GetScreenSizeXFCN {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/gpid.cpp b/engines/director/lingo/xlibs/gpid.cpp
index a0e145f10c1..8cf52a2d8ee 100644
--- a/engines/director/lingo/xlibs/gpid.cpp
+++ b/engines/director/lingo/xlibs/gpid.cpp
@@ -52,13 +52,13 @@
 
 namespace Director {
 
-const char *GpidXObj::xlibName = "gpid";
+const char *const GpidXObj::xlibName = "gpid";
 const XlibFileDesc GpidXObj::fileNames[] = {
 	{ "GPID",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",		GpidXObj::m_new,					0,	0,	400 },	// D4
 	{ "dispose",	GpidXObj::m_dispose,				0,	0,	400 },	// D4
 	{ "name",		GpidXObj::m_name,					0,	0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/gpid.h b/engines/director/lingo/xlibs/gpid.h
index d2a4942b15a..75a852c052c 100644
--- a/engines/director/lingo/xlibs/gpid.h
+++ b/engines/director/lingo/xlibs/gpid.h
@@ -32,7 +32,7 @@ public:
 
 namespace GpidXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/henry.cpp b/engines/director/lingo/xlibs/henry.cpp
index d854e19a3dd..308991318c1 100644
--- a/engines/director/lingo/xlibs/henry.cpp
+++ b/engines/director/lingo/xlibs/henry.cpp
@@ -87,13 +87,13 @@ X              mResumeGame --
 
 namespace Director {
 
-const char *HenryXObj::xlibName = "Henry";
+const char *const HenryXObj::xlibName = "Henry";
 const XlibFileDesc HenryXObj::fileNames[] = {
 	{ "HENRY",   nullptr },
 	{ nullptr,        nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				HenryXObj::m_new,		 2, 2,	400 },
 	{ "dispose",				HenryXObj::m_dispose,		 0, 0,	400 },
 	{ "name",				HenryXObj::m_name,		 0, 0,	400 },
@@ -142,7 +142,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/henry.h b/engines/director/lingo/xlibs/henry.h
index 415490f5d54..1863c9ddafe 100644
--- a/engines/director/lingo/xlibs/henry.h
+++ b/engines/director/lingo/xlibs/henry.h
@@ -31,7 +31,7 @@ public:
 
 namespace HenryXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/hitmap.cpp b/engines/director/lingo/xlibs/hitmap.cpp
index a228b2723cc..b9e079e34ac 100644
--- a/engines/director/lingo/xlibs/hitmap.cpp
+++ b/engines/director/lingo/xlibs/hitmap.cpp
@@ -48,14 +48,14 @@ X		mDispose												--Dispose of memory allocation
 
 namespace Director {
 
-const char *HitMap::xlibName = "HitMap";
+const char *const HitMap::xlibName = "HitMap";
 const XlibFileDesc HitMap::fileNames[] = {
 	{ "HitMap",		nullptr },
 	{ "maskXobj",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "New",	HitMap::m_new,		4,	4,	400 },	// D4
 	{ "Where",	HitMap::m_where,	2,	2,	400 },	// D4
 	{ nullptr, nullptr, 0, 0, 0 }
diff --git a/engines/director/lingo/xlibs/hitmap.h b/engines/director/lingo/xlibs/hitmap.h
index 507cbb0bd23..b1ac31681ca 100644
--- a/engines/director/lingo/xlibs/hitmap.h
+++ b/engines/director/lingo/xlibs/hitmap.h
@@ -31,7 +31,7 @@ public:
 
 namespace HitMap {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/inixobj.cpp b/engines/director/lingo/xlibs/inixobj.cpp
index f5b3d053e3d..bd1656541c6 100644
--- a/engines/director/lingo/xlibs/inixobj.cpp
+++ b/engines/director/lingo/xlibs/inixobj.cpp
@@ -45,20 +45,20 @@ I     mDispose     -- Disposes of XObject instance.
 
 namespace Director {
 
-const char *IniXObj::xlibName = "Ini";
+const char *const IniXObj::xlibName = "Ini";
 const XlibFileDesc IniXObj::fileNames[] = {
 	{ "INI",	"karma" },	// "Karma: Curse of the 12 Caves" conflicts with JWXIni in "www" gameid
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{"new",			IniXObj::m_new, 0, 0, 400},
 	{"readString",	IniXObj::m_readString, 4, 4, 400},
 	{"writeString",	IniXObj::m_writeString, 4, 4, 400},
 	{nullptr, nullptr, 0, 0, 0}
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{nullptr, nullptr, 0, 0, 0, VOIDSYM}
 };
 
diff --git a/engines/director/lingo/xlibs/inixobj.h b/engines/director/lingo/xlibs/inixobj.h
index 8565f8d1dc1..e07b40bba9d 100644
--- a/engines/director/lingo/xlibs/inixobj.h
+++ b/engines/director/lingo/xlibs/inixobj.h
@@ -35,7 +35,7 @@ public:
 
 namespace IniXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/instobj.cpp b/engines/director/lingo/xlibs/instobj.cpp
index 78250f793f2..88bd913c716 100644
--- a/engines/director/lingo/xlibs/instobj.cpp
+++ b/engines/director/lingo/xlibs/instobj.cpp
@@ -62,13 +62,13 @@ ISSSS  mWriteProfile, File,Section,Item,NewVal --Write an INI profile string
 
 namespace Director {
 
-const char *InstObjXObj::xlibName = "InstObj";
+const char *const InstObjXObj::xlibName = "InstObj";
 const XlibFileDesc InstObjXObj::fileNames[] = {
 	{ "INSTOBJ",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				InstObjXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				InstObjXObj::m_dispose,		 0, 0,	400 },
 	{ "name",				InstObjXObj::m_name,		 0, 0,	400 },
@@ -93,7 +93,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
 
diff --git a/engines/director/lingo/xlibs/instobj.h b/engines/director/lingo/xlibs/instobj.h
index 7d86fe41f1a..22cea98f202 100644
--- a/engines/director/lingo/xlibs/instobj.h
+++ b/engines/director/lingo/xlibs/instobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace InstObjXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/iscd.cpp b/engines/director/lingo/xlibs/iscd.cpp
index 4a4bf0569ab..93688ea22c9 100644
--- a/engines/director/lingo/xlibs/iscd.cpp
+++ b/engines/director/lingo/xlibs/iscd.cpp
@@ -34,13 +34,13 @@
 
 namespace Director {
 
-const char *IsCD::xlibName = "isCD";
+const char *const IsCD::xlibName = "isCD";
 const XlibFileDesc IsCD::fileNames[] = {
 	{ "isCD",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "isCD", IsCD::m_iscd, 1, 1, 300, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/iscd.h b/engines/director/lingo/xlibs/iscd.h
index b207a7cef76..dd29f5cab16 100644
--- a/engines/director/lingo/xlibs/iscd.h
+++ b/engines/director/lingo/xlibs/iscd.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace IsCD {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/ispippin.cpp b/engines/director/lingo/xlibs/ispippin.cpp
index 525f3302ae1..9c0886b76c7 100644
--- a/engines/director/lingo/xlibs/ispippin.cpp
+++ b/engines/director/lingo/xlibs/ispippin.cpp
@@ -34,13 +34,13 @@
 
 namespace Director {
 
-const char *IsPippin::xlibName = "IsPippin";
+const char *const IsPippin::xlibName = "IsPippin";
 const XlibFileDesc IsPippin::fileNames[] = {
 	{ "IsPippin",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "IsPippin", IsPippin::m_ispippin, 0, 0, 400, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/ispippin.h b/engines/director/lingo/xlibs/ispippin.h
index 3a3d200c706..7ab21c7c2fc 100644
--- a/engines/director/lingo/xlibs/ispippin.h
+++ b/engines/director/lingo/xlibs/ispippin.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace IsPippin {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/jitdraw3.cpp b/engines/director/lingo/xlibs/jitdraw3.cpp
index 13a7cf45419..71313d3f7f2 100644
--- a/engines/director/lingo/xlibs/jitdraw3.cpp
+++ b/engines/director/lingo/xlibs/jitdraw3.cpp
@@ -71,13 +71,13 @@
 
 namespace Director {
 
-const char *JITDraw3XObj::xlibName = "JITDraw3";
+const char *const JITDraw3XObj::xlibName = "JITDraw3";
 const XlibFileDesc JITDraw3XObj::fileNames[] = {
 	{ "JITDraw3",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "New",				JITDraw3XObj::m_new,			  0, 0,	400 },	// D4
 	{ "Dispose",			JITDraw3XObj::m_dispose,		  0, 0,	400 },	// D4
 	{ "CheckIfCDROM",		JITDraw3XObj::m_checkifcdrom,	  0, 0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/jitdraw3.h b/engines/director/lingo/xlibs/jitdraw3.h
index c6c073f858f..a3867dbcc55 100644
--- a/engines/director/lingo/xlibs/jitdraw3.h
+++ b/engines/director/lingo/xlibs/jitdraw3.h
@@ -31,7 +31,7 @@ public:
 
 namespace JITDraw3XObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/jwxini.cpp b/engines/director/lingo/xlibs/jwxini.cpp
index ccd17c7625a..a1101cb62f3 100644
--- a/engines/director/lingo/xlibs/jwxini.cpp
+++ b/engines/director/lingo/xlibs/jwxini.cpp
@@ -49,14 +49,14 @@
 
 namespace Director {
 
-const char *JourneyWareXINIXObj::xlibName = "INI";
+const char *const JourneyWareXINIXObj::xlibName = "INI";
 const XlibFileDesc JourneyWareXINIXObj::fileNames[] = {
 	{ "JWXINI",	nullptr },
 	{ "INI",	"www" },	// "Wellen, Wracks und Wassermaenner" names it INI.DLL
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{"new", 						JourneyWareXINIXObj::m_new, 0, 0, 400}, // D4
 	{"GetPrivateProfileInt", 		JourneyWareXINIXObj::m_GetPrivateProfileInt, 4, 4, 400}, // D4
 	{"GetPrivateProfileString", 	JourneyWareXINIXObj::m_GetPrivateProfileString, 5, 5, 400}, // D4
diff --git a/engines/director/lingo/xlibs/jwxini.h b/engines/director/lingo/xlibs/jwxini.h
index 82858c8ce61..08059ab5de8 100644
--- a/engines/director/lingo/xlibs/jwxini.h
+++ b/engines/director/lingo/xlibs/jwxini.h
@@ -32,7 +32,7 @@ public:
 
 namespace JourneyWareXINIXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/labeldrvxobj.cpp b/engines/director/lingo/xlibs/labeldrvxobj.cpp
index 79dfbcfeab1..48c0ba9c083 100644
--- a/engines/director/lingo/xlibs/labeldrvxobj.cpp
+++ b/engines/director/lingo/xlibs/labeldrvxobj.cpp
@@ -42,13 +42,13 @@
 
 namespace Director {
 
-const char *LabelDrvXObj::xlibName = "LabelDrv";
+const char *const LabelDrvXObj::xlibName = "LabelDrv";
 const XlibFileDesc LabelDrvXObj::fileNames[] = {
 	{ "LabelDrv",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				LabelDrvXObj::m_new,		 0, 0,	400 },	// D4
 	{ "SetRange",			LabelDrvXObj::m_setRange,	 2, 2,  400 },	// D4
 	{ "GetDrive",			LabelDrvXObj::m_getDrive,	 1, 1,  400 },	// D4
diff --git a/engines/director/lingo/xlibs/labeldrvxobj.h b/engines/director/lingo/xlibs/labeldrvxobj.h
index 5b8752729a2..ed3716f1ccf 100644
--- a/engines/director/lingo/xlibs/labeldrvxobj.h
+++ b/engines/director/lingo/xlibs/labeldrvxobj.h
@@ -34,7 +34,7 @@ public:
 
 namespace LabelDrvXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/maniacbg.cpp b/engines/director/lingo/xlibs/maniacbg.cpp
index 6356ed5e0c1..b200c86cc98 100644
--- a/engines/director/lingo/xlibs/maniacbg.cpp
+++ b/engines/director/lingo/xlibs/maniacbg.cpp
@@ -45,13 +45,13 @@ I      mIsForeMost --Is this Application foremost. 1=Yes, 0=No.
 
 namespace Director {
 
-const char *ManiacBgXObj::xlibName = "ForeMost";
+const char *const ManiacBgXObj::xlibName = "ForeMost";
 const XlibFileDesc ManiacBgXObj::fileNames[] = {
 	{ "maniacbg",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				ManiacBgXObj::m_new,		 0, 0,	300 },
 	{ "dispose",				ManiacBgXObj::m_dispose,		 0, 0,	300 },
 	{ "isForeMost",				ManiacBgXObj::m_isForeMost,		 0, 0,	300 },
diff --git a/engines/director/lingo/xlibs/maniacbg.h b/engines/director/lingo/xlibs/maniacbg.h
index 338fe910e17..78902566db6 100644
--- a/engines/director/lingo/xlibs/maniacbg.h
+++ b/engines/director/lingo/xlibs/maniacbg.h
@@ -31,7 +31,7 @@ public:
 
 namespace ManiacBgXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/mapnavigatorxobj.cpp b/engines/director/lingo/xlibs/mapnavigatorxobj.cpp
index 3ac18f14729..363283a1f01 100644
--- a/engines/director/lingo/xlibs/mapnavigatorxobj.cpp
+++ b/engines/director/lingo/xlibs/mapnavigatorxobj.cpp
@@ -80,14 +80,14 @@ SIIII mGetInstruction, node, hotspot, condition, i --  return ith instruction
 
 namespace Director {
 
-const char *MapNavigatorXObj::xlibName = "MapNav";
+const char *const MapNavigatorXObj::xlibName = "MapNav";
 const XlibFileDesc MapNavigatorXObj::fileNames[] = {
 	{ "MAPNAV",				nullptr }, // Jewels of the Oracle - Win
 	{ "MapNavigator.XObj",	nullptr }, // Jewels of the Oracle - Mac
 	{ nullptr,				nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",					MapNavigatorXObj::m_new,		 		 1, 1,	400 },
 	{ "dispose",				MapNavigatorXObj::m_dispose,		 	 0, 0,	400 },
 	{ "getFirstNode",			MapNavigatorXObj::m_getFirstNode,		 0, 0,	400 },
diff --git a/engines/director/lingo/xlibs/mapnavigatorxobj.h b/engines/director/lingo/xlibs/mapnavigatorxobj.h
index 1c013e60aa8..746b6754bf2 100644
--- a/engines/director/lingo/xlibs/mapnavigatorxobj.h
+++ b/engines/director/lingo/xlibs/mapnavigatorxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace MapNavigatorXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/memcheckxobj.cpp b/engines/director/lingo/xlibs/memcheckxobj.cpp
index a2abb3d644c..3c279151f1d 100644
--- a/engines/director/lingo/xlibs/memcheckxobj.cpp
+++ b/engines/director/lingo/xlibs/memcheckxobj.cpp
@@ -52,14 +52,14 @@ X mMemoryPurge -- Clear chunk o' mem
 
 namespace Director {
 
-const char *MemCheckXObj::xlibName = "MemCheck";
+const char *const MemCheckXObj::xlibName = "MemCheck";
 const XlibFileDesc MemCheckXObj::fileNames[] = {
 	{ "MemCheck",		nullptr }, // Jewels of the Oracle - Win
 	{ "MemCheck.XObj",	nullptr }, // Jewels of the Oracle - Mac
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				MemCheckXObj::m_new,		 1, 1,	400 },
 	{ "dispose",				MemCheckXObj::m_dispose,		 0, 0,	400 },
 	{ "memoryCheck",				MemCheckXObj::m_memoryCheck,		 0, 0,	400 },
diff --git a/engines/director/lingo/xlibs/memcheckxobj.h b/engines/director/lingo/xlibs/memcheckxobj.h
index 14203d4f9d7..20b52fc8fb3 100644
--- a/engines/director/lingo/xlibs/memcheckxobj.h
+++ b/engines/director/lingo/xlibs/memcheckxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace MemCheckXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/memoryxobj.cpp b/engines/director/lingo/xlibs/memoryxobj.cpp
index e492ef92e07..8aa384a3b1d 100644
--- a/engines/director/lingo/xlibs/memoryxobj.cpp
+++ b/engines/director/lingo/xlibs/memoryxobj.cpp
@@ -65,14 +65,14 @@
 
 namespace Director {
 
-const char *MemoryXObj::xlibName = "Memory";
+const char *const MemoryXObj::xlibName = "Memory";
 const XlibFileDesc MemoryXObj::fileNames[] = {
 	{ "Memory XObj",	nullptr },
 	{ "Memory",			nullptr },
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",					MemoryXObj::m_new,			0,	0,	300 },	// D3
 	{ "Clear",					MemoryXObj::m_clear,		0,	0,	300 },	// D3
 	{ "Purge",					MemoryXObj::m_purge,		0,	0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/memoryxobj.h b/engines/director/lingo/xlibs/memoryxobj.h
index 6f9421a01c1..3b7b179aa28 100644
--- a/engines/director/lingo/xlibs/memoryxobj.h
+++ b/engines/director/lingo/xlibs/memoryxobj.h
@@ -32,7 +32,7 @@ public:
 
 namespace MemoryXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/misc.cpp b/engines/director/lingo/xlibs/misc.cpp
index 694f0f14e99..888023a1762 100644
--- a/engines/director/lingo/xlibs/misc.cpp
+++ b/engines/director/lingo/xlibs/misc.cpp
@@ -37,13 +37,13 @@
 
 namespace Director {
 
-const char *Misc::xlibName = "misc";
+const char *const Misc::xlibName = "misc";
 const XlibFileDesc Misc::fileNames[] = {
     { "misc",   nullptr },
     { nullptr,  nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
     { "getProfileString",    Misc::m_getProfileString,   3, 3,  400 },
     { "isFilePresent",       Misc::m_isFilePresent,      1, 1,  400 },
     { nullptr, nullptr, 0, 0, 0 }
diff --git a/engines/director/lingo/xlibs/misc.h b/engines/director/lingo/xlibs/misc.h
index 39fc66edac8..70b041a9793 100644
--- a/engines/director/lingo/xlibs/misc.h
+++ b/engines/director/lingo/xlibs/misc.h
@@ -31,7 +31,7 @@ public:
 
 namespace Misc {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/miscx.cpp b/engines/director/lingo/xlibs/miscx.cpp
index 4e1e54a0a23..b800d8373d4 100644
--- a/engines/director/lingo/xlibs/miscx.cpp
+++ b/engines/director/lingo/xlibs/miscx.cpp
@@ -72,7 +72,7 @@
 
 namespace Director {
 
-const char *MiscX::xlibName = "Misc_X";
+const char *const MiscX::xlibName = "Misc_X";
 const XlibFileDesc MiscX::fileNames[] = {
 	{ "MISC_X",		nullptr },
 	{ "sharCOPY",	nullptr }, // TD loads this up using openXLib("@:sharCOPY.DLL")
@@ -80,7 +80,7 @@ const XlibFileDesc MiscX::fileNames[] = {
 	{ nullptr, 		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",					MiscX::m_new,				0,	0,	400 },	// D4
 	{ "dispose",				MiscX::m_dispose,			0,	0,	400 },	// D4
 	{ "bootName",				MiscX::m_bootName,			0,	0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/miscx.h b/engines/director/lingo/xlibs/miscx.h
index ed44a05af6a..f58639a30fe 100644
--- a/engines/director/lingo/xlibs/miscx.h
+++ b/engines/director/lingo/xlibs/miscx.h
@@ -31,7 +31,7 @@ public:
 
 namespace MiscX {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/mmaskxobj.cpp b/engines/director/lingo/xlibs/mmaskxobj.cpp
index b2c35fd3151..8a0cba8aea5 100644
--- a/engines/director/lingo/xlibs/mmaskxobj.cpp
+++ b/engines/director/lingo/xlibs/mmaskxobj.cpp
@@ -42,13 +42,13 @@ II	mMask, state
 
 namespace Director {
 
-const char *MMaskXObj::xlibName = "mmaskxobj";
+const char *const MMaskXObj::xlibName = "mmaskxobj";
 const XlibFileDesc MMaskXObj::fileNames[] = {
 	{ "MMASK.XOB",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",			MMaskXObj::m_new,		0, 0,	400 },
 	{ "dispose",		MMaskXObj::m_dispose,	0, 0,	400 },
 	{ "mask",			MMaskXObj::m_mask,	 	1, 1,	400 },
diff --git a/engines/director/lingo/xlibs/mmaskxobj.h b/engines/director/lingo/xlibs/mmaskxobj.h
index c2779b362de..90438f685ec 100644
--- a/engines/director/lingo/xlibs/mmaskxobj.h
+++ b/engines/director/lingo/xlibs/mmaskxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace MMaskXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/mmovie.cpp b/engines/director/lingo/xlibs/mmovie.cpp
index b008cb7e6b3..b4e5cfb6173 100644
--- a/engines/director/lingo/xlibs/mmovie.cpp
+++ b/engines/director/lingo/xlibs/mmovie.cpp
@@ -73,13 +73,13 @@ S       mVolList
 
 namespace Director {
 
-const char *MMovieXObj::xlibName = "MMovie";
+const char *const MMovieXObj::xlibName = "MMovie";
 const XlibFileDesc MMovieXObj::fileNames[] = {
 	{ "MMovie",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "Movie",				MMovieXObj::m_Movie,		 4, 4,	400 },
 	{ "new",				MMovieXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				MMovieXObj::m_dispose,		 0, 0,	400 },
@@ -110,7 +110,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
 
diff --git a/engines/director/lingo/xlibs/mmovie.h b/engines/director/lingo/xlibs/mmovie.h
index 1eed55180c1..a957c6d2696 100644
--- a/engines/director/lingo/xlibs/mmovie.h
+++ b/engines/director/lingo/xlibs/mmovie.h
@@ -93,7 +93,7 @@ public:
 
 namespace MMovieXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/moovxobj.cpp b/engines/director/lingo/xlibs/moovxobj.cpp
index f1e6dc68d82..cdf44877318 100644
--- a/engines/director/lingo/xlibs/moovxobj.cpp
+++ b/engines/director/lingo/xlibs/moovxobj.cpp
@@ -57,13 +57,13 @@
 
 namespace Director {
 
-const char *MoovXObj::xlibName = "moovxobj";
+const char *const MoovXObj::xlibName = "moovxobj";
 const XlibFileDesc MoovXObj::fileNames[] = {
 	{ "moovxobj",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",					MoovXObj::m_new,			    0,	0,	300 },	// D3
 	{ "Dispose",				MoovXObj::m_dispose,		    0,	0,	300 },	// D3
 	{ "Name",				    MoovXObj::m_name,		        0,	0,	300 },	// D4
diff --git a/engines/director/lingo/xlibs/moovxobj.h b/engines/director/lingo/xlibs/moovxobj.h
index f35b15ce83a..d2d772fff66 100644
--- a/engines/director/lingo/xlibs/moovxobj.h
+++ b/engines/director/lingo/xlibs/moovxobj.h
@@ -41,7 +41,7 @@ public:
 
 namespace MoovXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/movemousejp.cpp b/engines/director/lingo/xlibs/movemousejp.cpp
index f4dfb47ce87..f52a97839d0 100644
--- a/engines/director/lingo/xlibs/movemousejp.cpp
+++ b/engines/director/lingo/xlibs/movemousejp.cpp
@@ -64,14 +64,14 @@ S      mGetWindowsDir      --GetWindows Directory
 
 namespace Director {
 
-const char *MoveMouseJPXObj::xlibName = "MoveMouse";
+const char *const MoveMouseJPXObj::xlibName = "MoveMouse";
 const XlibFileDesc MoveMouseJPXObj::fileNames[] = {
 	{ "MOVEWIN",   "junglepark" },
 	{ "MOVEMOUSE",   "junglepark" },
 	{ nullptr,        nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				MoveMouseJPXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				MoveMouseJPXObj::m_dispose,		 0, 0,	400 },
 	{ "setMouseLoc",				MoveMouseJPXObj::m_setMouseLoc,		 2, 2,	400 },
@@ -87,7 +87,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/movemousejp.h b/engines/director/lingo/xlibs/movemousejp.h
index 89424c4cc7e..ea6e2d3c8d8 100644
--- a/engines/director/lingo/xlibs/movemousejp.h
+++ b/engines/director/lingo/xlibs/movemousejp.h
@@ -31,7 +31,7 @@ public:
 
 namespace MoveMouseJPXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/movemousexobj.cpp b/engines/director/lingo/xlibs/movemousexobj.cpp
index 51d7731a5d9..2df6785f05d 100644
--- a/engines/director/lingo/xlibs/movemousexobj.cpp
+++ b/engines/director/lingo/xlibs/movemousexobj.cpp
@@ -40,7 +40,7 @@
 
 namespace Director {
 
-const char *MoveMouseXObj::xlibName = "MoveMouse";
+const char *const MoveMouseXObj::xlibName = "MoveMouse";
 const XlibFileDesc MoveMouseXObj::fileNames[] = {
 	{ "MoveMouse",		nullptr },
 	{ "MoveMouse.XObj",	nullptr },
@@ -48,7 +48,7 @@ const XlibFileDesc MoveMouseXObj::fileNames[] = {
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",					MoveMouseXObj::m_new,			 0, 0,	400 },	// D4
 	{ "setMouseLoc",			MoveMouseXObj::m_setMouseLoc,	 2, 2,	400 },	// D4
 	{ nullptr, nullptr, 0, 0, 0 }
diff --git a/engines/director/lingo/xlibs/movemousexobj.h b/engines/director/lingo/xlibs/movemousexobj.h
index 472d24319af..a3be2d11d63 100644
--- a/engines/director/lingo/xlibs/movemousexobj.h
+++ b/engines/director/lingo/xlibs/movemousexobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace MoveMouseXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/movieidxxobj.cpp b/engines/director/lingo/xlibs/movieidxxobj.cpp
index 24e3f976886..494c59a1d05 100644
--- a/engines/director/lingo/xlibs/movieidxxobj.cpp
+++ b/engines/director/lingo/xlibs/movieidxxobj.cpp
@@ -50,14 +50,14 @@ SS mMovieInfo -- return info given name
 
 namespace Director {
 
-const char *MovieIdxXObj::xlibName = "MovieIdx";
+const char *const MovieIdxXObj::xlibName = "MovieIdx";
 const XlibFileDesc MovieIdxXObj::fileNames[] = {
 	{ "MovieIdx",		nullptr }, // Jewels of the Oracle - Win
 	{ "MovieIdx.XObj",	nullptr }, // Jewels of the Oracle - Mac
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				MovieIdxXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				MovieIdxXObj::m_dispose,		 0, 0,	400 },
 	{ "movieInfo",				MovieIdxXObj::m_movieInfo,		 1, 1,	400 },
diff --git a/engines/director/lingo/xlibs/movieidxxobj.h b/engines/director/lingo/xlibs/movieidxxobj.h
index fa45346ac4b..ba043508c87 100644
--- a/engines/director/lingo/xlibs/movieidxxobj.h
+++ b/engines/director/lingo/xlibs/movieidxxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace MovieIdxXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/movutils.cpp b/engines/director/lingo/xlibs/movutils.cpp
index 26ec03e214d..b354c024559 100644
--- a/engines/director/lingo/xlibs/movutils.cpp
+++ b/engines/director/lingo/xlibs/movutils.cpp
@@ -104,13 +104,13 @@ III    mGetMessage           --Get mouse/key messages from the application messa
 
 namespace Director {
 
-const char *MovUtilsXObj::xlibName = "MovUtils";
+const char *const MovUtilsXObj::xlibName = "MovUtils";
 const XlibFileDesc MovUtilsXObj::fileNames[] = {
 	{ "MOVUTILS",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				MovUtilsXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				MovUtilsXObj::m_dispose,		 0, 0,	400 },
 	{ "name",				MovUtilsXObj::m_name,		 0, 0,	400 },
@@ -166,7 +166,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
 
diff --git a/engines/director/lingo/xlibs/movutils.h b/engines/director/lingo/xlibs/movutils.h
index 79a1e23a75f..b01ab7903a8 100644
--- a/engines/director/lingo/xlibs/movutils.h
+++ b/engines/director/lingo/xlibs/movutils.h
@@ -31,7 +31,7 @@ public:
 
 namespace MovUtilsXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/mystisle.cpp b/engines/director/lingo/xlibs/mystisle.cpp
index a177ca17e39..8655e99527f 100644
--- a/engines/director/lingo/xlibs/mystisle.cpp
+++ b/engines/director/lingo/xlibs/mystisle.cpp
@@ -50,13 +50,13 @@ IPP    mDiagnostic, picHdl1, picHdl2 --for testing during development
 
 namespace Director {
 
-const char *MystIsleXObj::xlibName = "MystIsle";
+const char *const MystIsleXObj::xlibName = "MystIsle";
 const XlibFileDesc MystIsleXObj::fileNames[] = {
 	{ "MYSTISLE",   nullptr },
 	{ nullptr,        nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				MystIsleXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				MystIsleXObj::m_dispose,		 0, 0,	400 },
 	{ "name",				MystIsleXObj::m_name,		 0, 0,	400 },
@@ -69,7 +69,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/mystisle.h b/engines/director/lingo/xlibs/mystisle.h
index 6b9ee51d07b..6ac03287986 100644
--- a/engines/director/lingo/xlibs/mystisle.h
+++ b/engines/director/lingo/xlibs/mystisle.h
@@ -31,7 +31,7 @@ public:
 
 namespace MystIsleXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/openbleedwindowxcmd.cpp b/engines/director/lingo/xlibs/openbleedwindowxcmd.cpp
index b9eff3e148a..bfbe5121f5a 100644
--- a/engines/director/lingo/xlibs/openbleedwindowxcmd.cpp
+++ b/engines/director/lingo/xlibs/openbleedwindowxcmd.cpp
@@ -36,13 +36,13 @@
 
 namespace Director {
 
-const char *OpenBleedWindowXCMD::xlibName = "OpenBleedWindow";
+const char *const OpenBleedWindowXCMD::xlibName = "OpenBleedWindow";
 const XlibFileDesc OpenBleedWindowXCMD::fileNames[] = {
 	{ "OpenBleedWindow",	nullptr },
 	{ nullptr,				nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "OpenBleedWindow", OpenBleedWindowXCMD::m_OpenBleedWindow, -1, 0, 300, CBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/openbleedwindowxcmd.h b/engines/director/lingo/xlibs/openbleedwindowxcmd.h
index 5ab41f963e4..bbc77d3640f 100644
--- a/engines/director/lingo/xlibs/openbleedwindowxcmd.h
+++ b/engines/director/lingo/xlibs/openbleedwindowxcmd.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace OpenBleedWindowXCMD {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/orthoplayxobj.cpp b/engines/director/lingo/xlibs/orthoplayxobj.cpp
index ac9a81521f1..b0abeaaf4ae 100644
--- a/engines/director/lingo/xlibs/orthoplayxobj.cpp
+++ b/engines/director/lingo/xlibs/orthoplayxobj.cpp
@@ -47,13 +47,13 @@
 
 namespace Director {
 
-const char *OrthoPlayXObj::xlibName = "OrthoPlayXObj";
+const char *const OrthoPlayXObj::xlibName = "OrthoPlayXObj";
 const XlibFileDesc OrthoPlayXObj::fileNames[] = {
 	{ "OrthoPlay XObj",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				OrthoPlayXObj::m_new,				 0, 0,	200 },	// D2
 	{ "SetSerialPort",		OrthoPlayXObj::m_setSerialPort,		 1, 1,	200 },	// D2
 	{ "SetInitViaDlog",		OrthoPlayXObj::m_setInitViaDlog,	 1, 1,	200 },	// D2
diff --git a/engines/director/lingo/xlibs/orthoplayxobj.h b/engines/director/lingo/xlibs/orthoplayxobj.h
index 3906394a404..049996ba0f6 100644
--- a/engines/director/lingo/xlibs/orthoplayxobj.h
+++ b/engines/director/lingo/xlibs/orthoplayxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace OrthoPlayXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/paco.cpp b/engines/director/lingo/xlibs/paco.cpp
index 5611c889fbc..17f38fe64eb 100644
--- a/engines/director/lingo/xlibs/paco.cpp
+++ b/engines/director/lingo/xlibs/paco.cpp
@@ -48,21 +48,21 @@ SSS    mPACo, commands, results    --Plays Paco movies
 
 namespace Director {
 
-const char *PACoXObj::xlibName = "PACo";
+const char *const PACoXObj::xlibName = "PACo";
 const XlibFileDesc PACoXObj::fileNames[] = {
 	{ "PACO",	nullptr },
 	{ "PACOW",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				PACoXObj::m_new,		 1, 1,	300 },
 	{ "dispose",				PACoXObj::m_dispose,		 0, 0,	300 },
 	{ "pACo",				PACoXObj::m_pACo,		 2, 2,	300 },
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
 
diff --git a/engines/director/lingo/xlibs/paco.h b/engines/director/lingo/xlibs/paco.h
index 4fb65b9df5f..c9766da7f26 100644
--- a/engines/director/lingo/xlibs/paco.h
+++ b/engines/director/lingo/xlibs/paco.h
@@ -31,7 +31,7 @@ public:
 
 namespace PACoXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/palxobj.cpp b/engines/director/lingo/xlibs/palxobj.cpp
index 02f9270bda4..f0d2723734c 100644
--- a/engines/director/lingo/xlibs/palxobj.cpp
+++ b/engines/director/lingo/xlibs/palxobj.cpp
@@ -55,7 +55,7 @@
 namespace Director {
 
 // The name is different from the obj filename.
-const char *PalXObj::xlibName = "FixPalette";
+const char *const PalXObj::xlibName = "FixPalette";
 const XlibFileDesc PalXObj::fileNames[] = {
 	{ "PalXObj",		nullptr },
 	{ "FixPalette",		nullptr },
@@ -64,7 +64,7 @@ const XlibFileDesc PalXObj::fileNames[] = {
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				PalXObj::m_new,				 4, 4,	400 },	// D4
 	{ "PatchIt",			PalXObj::m_patchIt,			 0, 0,  400 },	// D4
 	{ nullptr, nullptr, 0, 0, 0 }
diff --git a/engines/director/lingo/xlibs/palxobj.h b/engines/director/lingo/xlibs/palxobj.h
index d46a2aa6fa6..3d87a428a51 100644
--- a/engines/director/lingo/xlibs/palxobj.h
+++ b/engines/director/lingo/xlibs/palxobj.h
@@ -34,7 +34,7 @@ public:
 
 namespace PalXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/panel.cpp b/engines/director/lingo/xlibs/panel.cpp
index 4f736fb72e5..cebdf296c7b 100644
--- a/engines/director/lingo/xlibs/panel.cpp
+++ b/engines/director/lingo/xlibs/panel.cpp
@@ -63,13 +63,13 @@ XII	mMouseDown, loch, locv	--Sends a mousedown at given location in panel.
 
 namespace Director {
 
-const char *PanelXObj::xlibName = "Panel";
+const char *const PanelXObj::xlibName = "Panel";
 const XlibFileDesc PanelXObj::fileNames[] = {
 	{ "Panel",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				PanelXObj::m_new,		 4, 4,	200 },
 	{ "dispose",				PanelXObj::m_dispose,		 0, 0,	200 },
 	{ "name",				PanelXObj::m_name,		 0, 0,	200 },
diff --git a/engines/director/lingo/xlibs/panel.h b/engines/director/lingo/xlibs/panel.h
index 78989aa5696..80081e78117 100644
--- a/engines/director/lingo/xlibs/panel.h
+++ b/engines/director/lingo/xlibs/panel.h
@@ -31,7 +31,7 @@ public:
 
 namespace PanelXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/popupmenuxobj.cpp b/engines/director/lingo/xlibs/popupmenuxobj.cpp
index 4020bf82fab..a6dfc1c8ec5 100644
--- a/engines/director/lingo/xlibs/popupmenuxobj.cpp
+++ b/engines/director/lingo/xlibs/popupmenuxobj.cpp
@@ -113,14 +113,14 @@
 
 namespace Director {
 
-const char *PopUpMenuXObj::xlibName = "PopMenu";
+const char *const PopUpMenuXObj::xlibName = "PopMenu";
 const XlibFileDesc PopUpMenuXObj::fileNames[] = {
 	{ "PopMenu",			nullptr },
 	{ "PopUp Menu XObj",	nullptr },
 	{ nullptr,				nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				PopUpMenuXObj::m_new,			 2, 2,	200 },	// D2
 	{ "AppendMenu",			PopUpMenuXObj::m_appendMenu,	 1, 1,	200 },	// D2
 	{ "DisableItem",		PopUpMenuXObj::m_disableItem,	 1, 1,	200 },	// D2
diff --git a/engines/director/lingo/xlibs/popupmenuxobj.h b/engines/director/lingo/xlibs/popupmenuxobj.h
index a32634f06f9..354120a972f 100644
--- a/engines/director/lingo/xlibs/popupmenuxobj.h
+++ b/engines/director/lingo/xlibs/popupmenuxobj.h
@@ -32,7 +32,7 @@ public:
 
 namespace PopUpMenuXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/porta.cpp b/engines/director/lingo/xlibs/porta.cpp
index 310cd52ef3a..ab881001696 100644
--- a/engines/director/lingo/xlibs/porta.cpp
+++ b/engines/director/lingo/xlibs/porta.cpp
@@ -37,14 +37,14 @@
 
 namespace Director {
 
-const char *Porta::xlibName = "Porta";
+const char *const Porta::xlibName = "Porta";
 const XlibFileDesc Porta::fileNames[] = {
 	{ "Porta",			nullptr },
 	{ "PortaXCMD.rsrc",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "Porta",	Porta::b_porta, 1, 1, 300, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/porta.h b/engines/director/lingo/xlibs/porta.h
index bef36a5e72d..7a720cf9f64 100644
--- a/engines/director/lingo/xlibs/porta.h
+++ b/engines/director/lingo/xlibs/porta.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace Porta {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/prefpath.cpp b/engines/director/lingo/xlibs/prefpath.cpp
index 6a7451cdd63..06695c4bce4 100644
--- a/engines/director/lingo/xlibs/prefpath.cpp
+++ b/engines/director/lingo/xlibs/prefpath.cpp
@@ -40,13 +40,13 @@ SS			mPrefPath
 
 namespace Director {
 
-const char *PrefPath::xlibName = "PrefPath";
+const char *const PrefPath::xlibName = "PrefPath";
 const XlibFileDesc PrefPath::fileNames[] = {
 	{ "PrefPath",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "PrefPath", PrefPath::m_prefpath, 1, 1, 400 },	// D4
 	{ nullptr, nullptr, 0, 0, 0 }
 };
diff --git a/engines/director/lingo/xlibs/prefpath.h b/engines/director/lingo/xlibs/prefpath.h
index 3c1851e06aa..cbfae9bdb11 100644
--- a/engines/director/lingo/xlibs/prefpath.h
+++ b/engines/director/lingo/xlibs/prefpath.h
@@ -31,7 +31,7 @@ public:
 
 namespace PrefPath {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/printomatic.cpp b/engines/director/lingo/xlibs/printomatic.cpp
index 9c6b9d672fd..759fa9a1a66 100644
--- a/engines/director/lingo/xlibs/printomatic.cpp
+++ b/engines/director/lingo/xlibs/printomatic.cpp
@@ -112,14 +112,14 @@ IS     mRegister, serialNumber
 
 namespace Director {
 
-const char *PrintOMaticXObj::xlibName = "PrintOMatic";
+const char *const PrintOMaticXObj::xlibName = "PrintOMatic";
 const XlibFileDesc PrintOMaticXObj::fileNames[] = {
 	{ "PMATIC",			nullptr },
 	{ "PrintOMatic",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "New",					PrintOMaticXObj::m_new,						0,	0,	400 },	// D4
 	{ "Dispose",				PrintOMaticXObj::m_dispose,					0,	0,	400 },	// D4
 	{ "Reset",					PrintOMaticXObj::m_reset,					0,	0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/printomatic.h b/engines/director/lingo/xlibs/printomatic.h
index 2c3028501cd..f503642ebb9 100644
--- a/engines/director/lingo/xlibs/printomatic.h
+++ b/engines/director/lingo/xlibs/printomatic.h
@@ -31,7 +31,7 @@ public:
 
 namespace PrintOMaticXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/processxobj.cpp b/engines/director/lingo/xlibs/processxobj.cpp
index f73d3c9a229..53bf8db84d9 100644
--- a/engines/director/lingo/xlibs/processxobj.cpp
+++ b/engines/director/lingo/xlibs/processxobj.cpp
@@ -46,13 +46,13 @@ X	 mKillProcess	-- kills this process
 
 namespace Director {
 
-const char *ProcessXObj::xlibName = "ProcessXObj";
+const char *const ProcessXObj::xlibName = "ProcessXObj";
 const XlibFileDesc ProcessXObj::fileNames[] = {
 	{ "ProcessXObj",	nullptr },
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				ProcessXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				ProcessXObj::m_dispose,		 0, 0,	400 },
 	{ "findPSN",				ProcessXObj::m_findPSN,		 2, 2,	400 },
diff --git a/engines/director/lingo/xlibs/processxobj.h b/engines/director/lingo/xlibs/processxobj.h
index d0170a0d147..b330cd45ae2 100644
--- a/engines/director/lingo/xlibs/processxobj.h
+++ b/engines/director/lingo/xlibs/processxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace ProcessXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/qtcatmovieplayerxobj.cpp b/engines/director/lingo/xlibs/qtcatmovieplayerxobj.cpp
index b906602ba95..a8be59b6beb 100644
--- a/engines/director/lingo/xlibs/qtcatmovieplayerxobj.cpp
+++ b/engines/director/lingo/xlibs/qtcatmovieplayerxobj.cpp
@@ -52,14 +52,14 @@ XIIIIIIIIS mPlay, filesOffset, startTime, duration, interruptable, h, v, hideCur
 
 namespace Director {
 
-const char *QTCatMoviePlayerXObj::xlibName = "CatPlayr";
+const char *const QTCatMoviePlayerXObj::xlibName = "CatPlayr";
 const XlibFileDesc QTCatMoviePlayerXObj::fileNames[] = {
 	{ "CATPLAYR",				nullptr }, // Jewels of the Oracle - Win
 	{ "QTCatMoviePlayer.XObj",	nullptr }, // Jewels of the Oracle - Mac
 	{ nullptr,					nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				QTCatMoviePlayerXObj::m_new,		 1, 1,	400 },
 	{ "dispose",			QTCatMoviePlayerXObj::m_dispose,	 0, 0,	400 },
 	{ "play",				QTCatMoviePlayerXObj::m_play,		 9, 9,	400 },
diff --git a/engines/director/lingo/xlibs/qtcatmovieplayerxobj.h b/engines/director/lingo/xlibs/qtcatmovieplayerxobj.h
index 79d7888bdb8..645cf0c2c4b 100644
--- a/engines/director/lingo/xlibs/qtcatmovieplayerxobj.h
+++ b/engines/director/lingo/xlibs/qtcatmovieplayerxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace QTCatMoviePlayerXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/qtmovie.cpp b/engines/director/lingo/xlibs/qtmovie.cpp
index 404cd00b75b..8f961e605a0 100644
--- a/engines/director/lingo/xlibs/qtmovie.cpp
+++ b/engines/director/lingo/xlibs/qtmovie.cpp
@@ -39,13 +39,13 @@
 
 namespace Director {
 
-const char *QTMovie::xlibName = "QTMovie";
+const char *const QTMovie::xlibName = "QTMovie";
 const XlibFileDesc QTMovie::fileNames[] = {
 	{ "QTMovie",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "QTMovie", QTMovie::m_qtmovie, 3, 6, 300, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/qtmovie.h b/engines/director/lingo/xlibs/qtmovie.h
index 58cf41a0b29..567207133e5 100644
--- a/engines/director/lingo/xlibs/qtmovie.h
+++ b/engines/director/lingo/xlibs/qtmovie.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace QTMovie {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/qtvr.cpp b/engines/director/lingo/xlibs/qtvr.cpp
index af93d0f9ec3..1972434c113 100644
--- a/engines/director/lingo/xlibs/qtvr.cpp
+++ b/engines/director/lingo/xlibs/qtvr.cpp
@@ -61,14 +61,14 @@
 
 namespace Director {
 
-const char *QTVR::xlibName = "QTVRW";
+const char *const QTVR::xlibName = "QTVRW";
 const XlibFileDesc QTVR::fileNames[] = {
 	{ "QTVR",		nullptr },
 	{ "QTVR.QTC",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",					QTVR::m_new,					1, 1,	400 },	// D4
 	{ "dispose",				QTVR::m_dispose,				1, 1,	400 },	// D4
 	{ "getHPanAngle",			QTVR::m_getHPanAngle,			0, 0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/qtvr.h b/engines/director/lingo/xlibs/qtvr.h
index b52d74ac920..9400cdeaa38 100644
--- a/engines/director/lingo/xlibs/qtvr.h
+++ b/engines/director/lingo/xlibs/qtvr.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace QTVR {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/quicktime.cpp b/engines/director/lingo/xlibs/quicktime.cpp
index 440d05c166e..45928e780f3 100644
--- a/engines/director/lingo/xlibs/quicktime.cpp
+++ b/engines/director/lingo/xlibs/quicktime.cpp
@@ -36,13 +36,13 @@
 
 namespace Director {
 
-const char *Quicktime::xlibName = "quicktime";
+const char *const Quicktime::xlibName = "quicktime";
 const XlibFileDesc Quicktime::fileNames[] = {
 	{ "QuickTime",  nullptr },
 	{ nullptr,	  nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "playStage",	   Quicktime::m_playStage,	  3, 3,  300 },
 	// Defined in the xobj itself but never used
 	// { "mPlaySmall",	  Quicktime::m_playSmall,	  3, 3,  300 },
diff --git a/engines/director/lingo/xlibs/quicktime.h b/engines/director/lingo/xlibs/quicktime.h
index f083fa5330f..1f6d996231b 100644
--- a/engines/director/lingo/xlibs/quicktime.h
+++ b/engines/director/lingo/xlibs/quicktime.h
@@ -31,7 +31,7 @@ public:
 
 namespace Quicktime {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/registercomponent.cpp b/engines/director/lingo/xlibs/registercomponent.cpp
index 3fd3712cb6f..1900bb2bdeb 100644
--- a/engines/director/lingo/xlibs/registercomponent.cpp
+++ b/engines/director/lingo/xlibs/registercomponent.cpp
@@ -33,13 +33,13 @@
 
 namespace Director {
 
-const char *RegisterComponent::xlibName = "RegisterComponent";
+const char *const RegisterComponent::xlibName = "RegisterComponent";
 const XlibFileDesc RegisterComponent::fileNames[] = {
 	{ "RegisterComponent",	nullptr },
 	{ nullptr,				nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "RegisterComponent",	RegisterComponent::b_RegisterComponent, 1, 2, 400, FBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/registercomponent.h b/engines/director/lingo/xlibs/registercomponent.h
index 6e5e22cc52b..36c68edb70a 100644
--- a/engines/director/lingo/xlibs/registercomponent.h
+++ b/engines/director/lingo/xlibs/registercomponent.h
@@ -38,7 +38,7 @@ namespace Director {
 
 namespace RegisterComponent {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/remixxcmd.cpp b/engines/director/lingo/xlibs/remixxcmd.cpp
index e11deed34d5..29ce7ac6e09 100644
--- a/engines/director/lingo/xlibs/remixxcmd.cpp
+++ b/engines/director/lingo/xlibs/remixxcmd.cpp
@@ -41,13 +41,13 @@
 
 namespace Director {
 
-const char *RemixXCMD::xlibName = "Remix";
+const char *const RemixXCMD::xlibName = "Remix";
 const XlibFileDesc RemixXCMD::fileNames[] = {
 	{ "Remix",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "Remix", RemixXCMD::m_Remix, 1, 1, 300, CBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/remixxcmd.h b/engines/director/lingo/xlibs/remixxcmd.h
index 88005b566a5..a91bedbb5e2 100644
--- a/engines/director/lingo/xlibs/remixxcmd.h
+++ b/engines/director/lingo/xlibs/remixxcmd.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace RemixXCMD {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/serialportxobj.cpp b/engines/director/lingo/xlibs/serialportxobj.cpp
index 226a9fe2fd6..0166ad1c458 100644
--- a/engines/director/lingo/xlibs/serialportxobj.cpp
+++ b/engines/director/lingo/xlibs/serialportxobj.cpp
@@ -43,13 +43,13 @@
 
 namespace Director {
 
-const char *SerialPortXObj::xlibName = "SerialPort";
+const char *const SerialPortXObj::xlibName = "SerialPort";
 const XlibFileDesc SerialPortXObj::fileNames[] = {
 	{ "SerialPort",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				SerialPortXObj::m_new,			 1, 1,	200 },	// D2
 	{ "GetPortNum",			SerialPortXObj::m_getPortNum,	 0, 0,	200 },	// D2
 	{ "WriteString",		SerialPortXObj::m_writeString,	 1, 1,	200 },	// D2
diff --git a/engines/director/lingo/xlibs/serialportxobj.h b/engines/director/lingo/xlibs/serialportxobj.h
index 1e7f68ba36f..c6e7cba5f60 100644
--- a/engines/director/lingo/xlibs/serialportxobj.h
+++ b/engines/director/lingo/xlibs/serialportxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace SerialPortXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/soundjam.cpp b/engines/director/lingo/xlibs/soundjam.cpp
index 119500edc25..d5e2585bbb2 100644
--- a/engines/director/lingo/xlibs/soundjam.cpp
+++ b/engines/director/lingo/xlibs/soundjam.cpp
@@ -53,7 +53,7 @@
 
 namespace Director {
 
-const char *SoundJam::xlibName = "SoundJam";
+const char *const SoundJam::xlibName = "SoundJam";
 const XlibFileDesc SoundJam::fileNames[] = {
 	{ "SoundJam",	nullptr },
 	{ nullptr,		nullptr },
@@ -61,7 +61,7 @@ const XlibFileDesc SoundJam::fileNames[] = {
 
 const int kJamChannel = 3;
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				SoundJam::m_new,			 1, 1,	400 },
 	{ "defineFileSound",	SoundJam::m_defineFileSound, 2, 2,	400 },
 	{ "defineCastSound",	SoundJam::m_defineCastSound, 2, 2,	400 },
diff --git a/engines/director/lingo/xlibs/soundjam.h b/engines/director/lingo/xlibs/soundjam.h
index e823473641c..9a757b684bc 100644
--- a/engines/director/lingo/xlibs/soundjam.h
+++ b/engines/director/lingo/xlibs/soundjam.h
@@ -34,7 +34,7 @@ public:
 
 namespace SoundJam {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/spacemgr.cpp b/engines/director/lingo/xlibs/spacemgr.cpp
index a2cde8f0757..c9e9ba80996 100644
--- a/engines/director/lingo/xlibs/spacemgr.cpp
+++ b/engines/director/lingo/xlibs/spacemgr.cpp
@@ -83,13 +83,13 @@
 
 namespace Director {
 
-const char *SpaceMgr::xlibName = "SpaceMgr";
+const char *const SpaceMgr::xlibName = "SpaceMgr";
 const XlibFileDesc SpaceMgr::fileNames[] = {
 	{ "SpaceMgr",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",					SpaceMgr::m_new,					0, 0,	400 },	// D4
 	{ "dispose",				SpaceMgr::m_dispose,				1, 1,	400 },	// D4
 	{ "lastError",				SpaceMgr::m_lastError,				0, 0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/spacemgr.h b/engines/director/lingo/xlibs/spacemgr.h
index a971bbd8fde..ce007274f50 100644
--- a/engines/director/lingo/xlibs/spacemgr.h
+++ b/engines/director/lingo/xlibs/spacemgr.h
@@ -47,7 +47,7 @@ struct SpaceCollection {
 	Common::HashMap<Common::String, Space> spaces;
 };
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/stagetc.cpp b/engines/director/lingo/xlibs/stagetc.cpp
index c2f0d7a5962..2a8333a9f09 100644
--- a/engines/director/lingo/xlibs/stagetc.cpp
+++ b/engines/director/lingo/xlibs/stagetc.cpp
@@ -40,13 +40,13 @@ I      mGetHandle            --Copies a portion of the stage onto a cast member
 
 namespace Director {
 
-const char *StageTCXObj::xlibName = "StageTC";
+const char *const StageTCXObj::xlibName = "StageTC";
 const XlibFileDesc StageTCXObj::fileNames[] = {
 	{ "STAGETC",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "New",		StageTCXObj::m_new,			4,	4,	400 },	// D4
 	{ "Dispose",	StageTCXObj::m_dispose,		0,	0,	400 },	// D4
 	{ "GetHandle",	StageTCXObj::m_gethandle,	0,	0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/stagetc.h b/engines/director/lingo/xlibs/stagetc.h
index fa157a517fc..5d5391653e7 100644
--- a/engines/director/lingo/xlibs/stagetc.h
+++ b/engines/director/lingo/xlibs/stagetc.h
@@ -31,7 +31,7 @@ public:
 
 namespace StageTCXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/syscolor.cpp b/engines/director/lingo/xlibs/syscolor.cpp
index 9aaee51518d..3ff40434575 100644
--- a/engines/director/lingo/xlibs/syscolor.cpp
+++ b/engines/director/lingo/xlibs/syscolor.cpp
@@ -45,13 +45,13 @@ X      mRestoreColors      --Restores windows system colors
 
 namespace Director {
 
-const char *SysColorXObj::xlibName = "SysColor";
+const char *const SysColorXObj::xlibName = "SysColor";
 const XlibFileDesc SysColorXObj::fileNames[] = {
 	{ "SYSCOLOR",   nullptr },
 	{ nullptr,        nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				SysColorXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				SysColorXObj::m_dispose,		 0, 0,	400 },
 	{ "saveColors",				SysColorXObj::m_saveColors,		 0, 0,	400 },
@@ -59,7 +59,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/syscolor.h b/engines/director/lingo/xlibs/syscolor.h
index 605e9ae92f3..1d55d87b2fa 100644
--- a/engines/director/lingo/xlibs/syscolor.h
+++ b/engines/director/lingo/xlibs/syscolor.h
@@ -31,7 +31,7 @@ public:
 
 namespace SysColorXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/unittest.cpp b/engines/director/lingo/xlibs/unittest.cpp
index 4ac4f2046c8..ed1453e8389 100644
--- a/engines/director/lingo/xlibs/unittest.cpp
+++ b/engines/director/lingo/xlibs/unittest.cpp
@@ -43,7 +43,7 @@
 
 namespace Director {
 
-const char *UnitTestXObj::xlibName = "UnitTest";
+const char *const UnitTestXObj::xlibName = "UnitTest";
 const XlibFileDesc UnitTestXObj::fileNames[] = {
 	{ "UnitTest",	nullptr },
 	{ nullptr,		nullptr },
@@ -60,7 +60,7 @@ I      mLeftMouseDown           --Press the LMB
 I      mLeftMouseUp             --Release the LMB
  */
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				UnitTestXObj::m_new,				0, 0,	400 },	// D4
 	{ "dispose",			UnitTestXObj::m_dispose,			0, 0,	400 },	// D4
 	{ "isRealDirector",		UnitTestXObj::m_isRealDirector,		0, 0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/unittest.h b/engines/director/lingo/xlibs/unittest.h
index e90211b6676..80af7bfc236 100644
--- a/engines/director/lingo/xlibs/unittest.h
+++ b/engines/director/lingo/xlibs/unittest.h
@@ -32,7 +32,7 @@ public:
 
 namespace UnitTestXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/valkyrie.cpp b/engines/director/lingo/xlibs/valkyrie.cpp
index 9f4d94487b0..a44fc74d390 100644
--- a/engines/director/lingo/xlibs/valkyrie.cpp
+++ b/engines/director/lingo/xlibs/valkyrie.cpp
@@ -47,13 +47,13 @@
 
 namespace Director {
 
-const char *ValkyrieXObj::xlibName = "Valkyrie";
+const char *const ValkyrieXObj::xlibName = "Valkyrie";
 const XlibFileDesc ValkyrieXObj::fileNames[] = {
 	{ "VALKYRIE",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "New",					ValkyrieXObj::m_new,			0,	0,	400 },	// D4
 	{ "Dispose",				ValkyrieXObj::m_dispose,		0,	0,	400 },	// D4
 	{ "Name",					ValkyrieXObj::m_name,			0,	0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/valkyrie.h b/engines/director/lingo/xlibs/valkyrie.h
index 224f68fbea6..7ceb6832f3d 100644
--- a/engines/director/lingo/xlibs/valkyrie.h
+++ b/engines/director/lingo/xlibs/valkyrie.h
@@ -31,7 +31,7 @@ public:
 
 namespace ValkyrieXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/videodiscxobj.cpp b/engines/director/lingo/xlibs/videodiscxobj.cpp
index 70168a23103..16572bdc2d1 100644
--- a/engines/director/lingo/xlibs/videodiscxobj.cpp
+++ b/engines/director/lingo/xlibs/videodiscxobj.cpp
@@ -115,14 +115,14 @@
 
 namespace Director {
 
-const char *VideodiscXObj::xlibName = "LaserDisc";
+const char *const VideodiscXObj::xlibName = "LaserDisc";
 const XlibFileDesc VideodiscXObj::fileNames[] = {
 	{ "Videodisc XObj",	nullptr },
 	{ "LaserDisc",		nullptr },
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",			VideodiscXObj::m_new,			 3, 3,	200 },	// D2
 	{ "Name",			VideodiscXObj::m_name,			 0, 0,	200 },	// D2
 	{ "Player",			VideodiscXObj::m_player,		 0, 0,	200 },	// D2
diff --git a/engines/director/lingo/xlibs/videodiscxobj.h b/engines/director/lingo/xlibs/videodiscxobj.h
index ab6a21f12c8..6a248d76cbf 100644
--- a/engines/director/lingo/xlibs/videodiscxobj.h
+++ b/engines/director/lingo/xlibs/videodiscxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace VideodiscXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/vmisonxfcn.cpp b/engines/director/lingo/xlibs/vmisonxfcn.cpp
index 2131a90b78a..8950ef65959 100644
--- a/engines/director/lingo/xlibs/vmisonxfcn.cpp
+++ b/engines/director/lingo/xlibs/vmisonxfcn.cpp
@@ -36,13 +36,13 @@
 
 namespace Director {
 
-const char *VMisOnXFCN::xlibName = "VMisOn";
+const char *const VMisOnXFCN::xlibName = "VMisOn";
 const XlibFileDesc VMisOnXFCN::fileNames[] = {
 	{ "VMisOn",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "VMisOn", VMisOnXFCN::m_VMisOn, -1, 0, 400, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/vmisonxfcn.h b/engines/director/lingo/xlibs/vmisonxfcn.h
index 2b0ff038104..80f1e93ed5a 100644
--- a/engines/director/lingo/xlibs/vmisonxfcn.h
+++ b/engines/director/lingo/xlibs/vmisonxfcn.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace VMisOnXFCN {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/volumelist.cpp b/engines/director/lingo/xlibs/volumelist.cpp
index 1f22001ff2a..2ad69d48d69 100644
--- a/engines/director/lingo/xlibs/volumelist.cpp
+++ b/engines/director/lingo/xlibs/volumelist.cpp
@@ -39,13 +39,13 @@
 
 namespace Director {
 
-const char *VolumeList::xlibName = "VolumeList";
+const char *const VolumeList::xlibName = "VolumeList";
 const XlibFileDesc VolumeList::fileNames[] = {
 	{ "VolumeList",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "VolumeList", VolumeList::m_volumelist, 0, 0, 300, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/volumelist.h b/engines/director/lingo/xlibs/volumelist.h
index 524d2bcb8f3..4d413f37cf8 100644
--- a/engines/director/lingo/xlibs/volumelist.h
+++ b/engines/director/lingo/xlibs/volumelist.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace VolumeList {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/widgetxobj.cpp b/engines/director/lingo/xlibs/widgetxobj.cpp
index c7fc8651779..f3ac5c468f6 100644
--- a/engines/director/lingo/xlibs/widgetxobj.cpp
+++ b/engines/director/lingo/xlibs/widgetxobj.cpp
@@ -45,13 +45,13 @@
 namespace Director {
 
 
-const char *WidgetXObj::xlibName = "Widget";
+const char *const WidgetXObj::xlibName = "Widget";
 const XlibFileDesc WidgetXObj::fileNames[] = {
 	{ "widget",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				WidgetXObj::m_new,			0, 0,	400 },	// D4
 	{ "Dispose",			WidgetXObj::m_dispose,		0, 0,	400 },	// D4
 	{ "GetPro",				WidgetXObj::m_getPro,		0, 0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/widgetxobj.h b/engines/director/lingo/xlibs/widgetxobj.h
index f9506353d5a..411e4074655 100644
--- a/engines/director/lingo/xlibs/widgetxobj.h
+++ b/engines/director/lingo/xlibs/widgetxobj.h
@@ -31,7 +31,7 @@ public:
 
 namespace WidgetXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/window.cpp b/engines/director/lingo/xlibs/window.cpp
index 1f49ebac8f3..a38554dfc6d 100644
--- a/engines/director/lingo/xlibs/window.cpp
+++ b/engines/director/lingo/xlibs/window.cpp
@@ -71,13 +71,13 @@ OI	+mNthWindow, n	--Returns the n'th window.
 
 namespace Director {
 
-const char *WindowXObj::xlibName = "Window";
+const char *const WindowXObj::xlibName = "Window";
 const XlibFileDesc WindowXObj::fileNames[] = {
 	{ "Window",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				WindowXObj::m_new,		 2, 2,	200 },
 	{ "dispose",			WindowXObj::m_dispose,	 0, 0,	200 },
 	{ "name",				WindowXObj::m_name,		 0, 0,	200 },
diff --git a/engines/director/lingo/xlibs/window.h b/engines/director/lingo/xlibs/window.h
index 69dcd66e01b..a7bf98adc78 100644
--- a/engines/director/lingo/xlibs/window.h
+++ b/engines/director/lingo/xlibs/window.h
@@ -31,7 +31,7 @@ public:
 
 namespace WindowXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/wininfo.cpp b/engines/director/lingo/xlibs/wininfo.cpp
index 9e9d34d3c83..43cefc6d52f 100644
--- a/engines/director/lingo/xlibs/wininfo.cpp
+++ b/engines/director/lingo/xlibs/wininfo.cpp
@@ -45,13 +45,13 @@ SSSS   mWinInfo, file, section, entry      --Returns Windows information item
 
 namespace Director {
 
-const char *WinInfoXObj::xlibName = "Wininfo";
+const char *const WinInfoXObj::xlibName = "Wininfo";
 const XlibFileDesc WinInfoXObj::fileNames[] = {
 	{ "wininfo",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				WinInfoXObj::m_new,		 0, 0,	400 },
 	{ "dispose",				WinInfoXObj::m_dispose,		 0, 0,	400 },
 	{ "name",				WinInfoXObj::m_name,		 0, 0,	400 },
diff --git a/engines/director/lingo/xlibs/wininfo.h b/engines/director/lingo/xlibs/wininfo.h
index bd05a137e85..daeafd08175 100644
--- a/engines/director/lingo/xlibs/wininfo.h
+++ b/engines/director/lingo/xlibs/wininfo.h
@@ -31,7 +31,7 @@ public:
 
 namespace WinInfoXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/winxobj.cpp b/engines/director/lingo/xlibs/winxobj.cpp
index 629f57a502d..776d4ed1a69 100644
--- a/engines/director/lingo/xlibs/winxobj.cpp
+++ b/engines/director/lingo/xlibs/winxobj.cpp
@@ -44,7 +44,7 @@
 
 namespace Director {
 
-const char *RearWindowXObj::xlibName = "RearWindow";
+const char *const RearWindowXObj::xlibName = "RearWindow";
 const XlibFileDesc RearWindowXObj::fileNames[] = {
 	{ "RearWindow",			nullptr },
 	{ "RearWindow.Xobj",	nullptr },
@@ -232,7 +232,7 @@ X mDispose -- closes the RearWindow, releases its data, and the XObject itself f
 /I    mDevPixMapToWindow
 */
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				RearWindowXObj::m_new,					1,	1,	400 },	// D4
 	{ "getappname",			RearWindowXObj::m_getAppName,			0,	0,	400 },	// D4
 	{ "GetMemoryNeeded",	RearWindowXObj::m_getMemoryNeeded,		0,	0,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/winxobj.h b/engines/director/lingo/xlibs/winxobj.h
index 9dd0d0f66b8..185da23abe1 100644
--- a/engines/director/lingo/xlibs/winxobj.h
+++ b/engines/director/lingo/xlibs/winxobj.h
@@ -32,7 +32,7 @@ public:
 
 namespace RearWindowXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/xcmdglue.cpp b/engines/director/lingo/xlibs/xcmdglue.cpp
index b688a827a75..11e56aef4a7 100644
--- a/engines/director/lingo/xlibs/xcmdglue.cpp
+++ b/engines/director/lingo/xlibs/xcmdglue.cpp
@@ -50,13 +50,13 @@ O	mGetHandler
 
 namespace Director {
 
-const char *XCMDGlueXObj::xlibName = "XCMDGlue";
+const char *const XCMDGlueXObj::xlibName = "XCMDGlue";
 const XlibFileDesc XCMDGlueXObj::fileNames[] = {
 	{ "XCMDGlue",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				XCMDGlueXObj::m_new,		 2, 2,	200 },
 	{ "dispose",				XCMDGlueXObj::m_dispose,		 0, 0,	200 },
 	{ "verbDispose",				XCMDGlueXObj::m_verbDispose,		 1, 1,	200 },
diff --git a/engines/director/lingo/xlibs/xcmdglue.h b/engines/director/lingo/xlibs/xcmdglue.h
index 151403d93e0..d574c32359a 100644
--- a/engines/director/lingo/xlibs/xcmdglue.h
+++ b/engines/director/lingo/xlibs/xcmdglue.h
@@ -31,7 +31,7 @@ public:
 
 namespace XCMDGlueXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/xio.cpp b/engines/director/lingo/xlibs/xio.cpp
index 8b2b55463f1..9c3c9da1b1a 100644
--- a/engines/director/lingo/xlibs/xio.cpp
+++ b/engines/director/lingo/xlibs/xio.cpp
@@ -45,13 +45,13 @@
 
 namespace Director {
 
-const char *XioXObj::xlibName = "Xio";
+const char *const XioXObj::xlibName = "Xio";
 const XlibFileDesc XioXObj::fileNames[] = {
 	{ "XIO",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "New",		XioXObj::m_new,			0,	0,	400 },	// D4
 	{ "Dispose",	XioXObj::m_dispose,		0,	0,	400 },	// D4
 	{ "Unlock",		XioXObj::m_unlock,		1,	1,	400 },	// D4
diff --git a/engines/director/lingo/xlibs/xio.h b/engines/director/lingo/xlibs/xio.h
index 336480e90f4..1d388549e0f 100644
--- a/engines/director/lingo/xlibs/xio.h
+++ b/engines/director/lingo/xlibs/xio.h
@@ -31,7 +31,7 @@ public:
 
 namespace XioXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/xplayanim.cpp b/engines/director/lingo/xlibs/xplayanim.cpp
index 635a3c99f30..155b4eb5dff 100644
--- a/engines/director/lingo/xlibs/xplayanim.cpp
+++ b/engines/director/lingo/xlibs/xplayanim.cpp
@@ -36,13 +36,13 @@
 
 namespace Director {
 
-const char *XPlayAnim::xlibName = "XPlayAnim";
+const char *const XPlayAnim::xlibName = "XPlayAnim";
 const XlibFileDesc XPlayAnim::fileNames[] = {
 	{ "XPlayAnim",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "XPlayAnim",	XPlayAnim::b_xplayanim, 3, 3, 300, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/xplayanim.h b/engines/director/lingo/xlibs/xplayanim.h
index 498c58903db..35bb847f8c5 100644
--- a/engines/director/lingo/xlibs/xplayanim.h
+++ b/engines/director/lingo/xlibs/xplayanim.h
@@ -35,7 +35,7 @@ namespace Director {
 
 namespace XPlayAnim {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/xsoundxfcn.cpp b/engines/director/lingo/xlibs/xsoundxfcn.cpp
index 3d62ba85aa2..3a8f4496c07 100644
--- a/engines/director/lingo/xlibs/xsoundxfcn.cpp
+++ b/engines/director/lingo/xlibs/xsoundxfcn.cpp
@@ -36,13 +36,13 @@
 
 namespace Director {
 
-const char *XSoundXFCN::xlibName = "XSound";
+const char *const XSoundXFCN::xlibName = "XSound";
 const XlibFileDesc XSoundXFCN::fileNames[] = {
 	{ "XSound",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "XSound", XSoundXFCN::m_XSound, -1, 0, 400, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/xsoundxfcn.h b/engines/director/lingo/xlibs/xsoundxfcn.h
index b18adafd414..650d8d14902 100644
--- a/engines/director/lingo/xlibs/xsoundxfcn.h
+++ b/engines/director/lingo/xlibs/xsoundxfcn.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace XSoundXFCN {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/xwin.cpp b/engines/director/lingo/xlibs/xwin.cpp
index 84b7fba07f9..8adba65d968 100644
--- a/engines/director/lingo/xlibs/xwin.cpp
+++ b/engines/director/lingo/xlibs/xwin.cpp
@@ -62,13 +62,13 @@ I          mhwnd  --window handle
 
 namespace Director {
 
-const char *XWINXObj::xlibName = "XWIN";
+const char *const XWINXObj::xlibName = "XWIN";
 const XlibFileDesc XWINXObj::fileNames[] = {
 	{ "XWIN",	nullptr },
 	{ nullptr,	nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				XWINXObj::m_new,		 0, 0,	300 },
 	{ "dispose",				XWINXObj::m_dispose,		 0, 0,	300 },
 	{ "writeChar",				XWINXObj::m_writeChar,		 1, 1,	300 },
@@ -93,7 +93,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
 
diff --git a/engines/director/lingo/xlibs/xwin.h b/engines/director/lingo/xlibs/xwin.h
index 374151a9d6b..35d4db38284 100644
--- a/engines/director/lingo/xlibs/xwin.h
+++ b/engines/director/lingo/xlibs/xwin.h
@@ -31,7 +31,7 @@ public:
 
 namespace XWINXObj {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xlibs/yasix.cpp b/engines/director/lingo/xlibs/yasix.cpp
index 8db34e3bb74..007d13501d5 100644
--- a/engines/director/lingo/xlibs/yasix.cpp
+++ b/engines/director/lingo/xlibs/yasix.cpp
@@ -37,13 +37,13 @@
 
 namespace Director {
 
-const char *Yasix::xlibName = "YASIX";
+const char *const Yasix::xlibName = "YASIX";
 const XlibFileDesc Yasix::fileNames[] = {
 	{ "YASIX", nullptr },
 	{ nullptr, nullptr },
 };
 
-static BuiltinProto builtins[] = {
+static const BuiltinProto builtins[] = {
 	{ "YASIX", Yasix::m_yasix, 0, 0, 300, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xlibs/yasix.h b/engines/director/lingo/xlibs/yasix.h
index 95b48e70c99..ce4d1ae50e5 100644
--- a/engines/director/lingo/xlibs/yasix.h
+++ b/engines/director/lingo/xlibs/yasix.h
@@ -26,7 +26,7 @@ namespace Director {
 
 namespace Yasix {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xtras/directsound.cpp b/engines/director/lingo/xtras/directsound.cpp
index f8f85f3b5b5..13d79811a86 100644
--- a/engines/director/lingo/xtras/directsound.cpp
+++ b/engines/director/lingo/xtras/directsound.cpp
@@ -95,19 +95,19 @@ new object me
 
 namespace Director {
 
-const char *DirectsoundXtra::xlibName = "Directsound";
+const char *const DirectsoundXtra::xlibName = "Directsound";
 const XlibFileDesc DirectsoundXtra::fileNames[] = {
 	{ "directsound",	nullptr },
 	{ "Dsound_r", 		nullptr },
 	{ nullptr,			nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				DirectsoundXtra::m_new,		 0, 0,	500 },
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ "dsOpen", DirectsoundXtra::m_dsOpen, 0, 0, 500, HBLTIN },
 	{ "dsNewSound", DirectsoundXtra::m_dsNewSound, 2, 2, 500, HBLTIN },
 	{ "dsDelSound", DirectsoundXtra::m_dsDelSound, 1, 1, 500, HBLTIN },
diff --git a/engines/director/lingo/xtras/directsound.h b/engines/director/lingo/xtras/directsound.h
index 36bf080f1a7..a318f161dd5 100644
--- a/engines/director/lingo/xtras/directsound.h
+++ b/engines/director/lingo/xtras/directsound.h
@@ -34,7 +34,7 @@ public:
 
 namespace DirectsoundXtra {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xtras/keypoll.cpp b/engines/director/lingo/xtras/keypoll.cpp
index 90793a2ae9f..c5b191d01ae 100644
--- a/engines/director/lingo/xtras/keypoll.cpp
+++ b/engines/director/lingo/xtras/keypoll.cpp
@@ -50,19 +50,19 @@ new object me
 
 namespace Director {
 
-const char *KeypollXtra::xlibName = "Keypoll";
+const char *const KeypollXtra::xlibName = "Keypoll";
 const XlibFileDesc KeypollXtra::fileNames[] = {
 	{ "keypoll",   nullptr },
 	{ nullptr,        nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "xtra",				KeypollXtra::m_xtra,		 0, 0,	500 },
 	{ "new",				KeypollXtra::m_new,		 0, 0,	500 },
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ "bgOneKey", KeypollXtra::m_bgOneKey, 1, 1, 500, HBLTIN },
 	{ "bgAllKeys", KeypollXtra::m_bgAllKeys, 0, 0, 500, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
diff --git a/engines/director/lingo/xtras/keypoll.h b/engines/director/lingo/xtras/keypoll.h
index 35a01a723df..d61f4dac6ee 100644
--- a/engines/director/lingo/xtras/keypoll.h
+++ b/engines/director/lingo/xtras/keypoll.h
@@ -34,7 +34,7 @@ public:
 
 namespace KeypollXtra {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xtras/qtvrxtra.cpp b/engines/director/lingo/xtras/qtvrxtra.cpp
index 05372a07b21..c837126f970 100644
--- a/engines/director/lingo/xtras/qtvrxtra.cpp
+++ b/engines/director/lingo/xtras/qtvrxtra.cpp
@@ -154,14 +154,14 @@ IsQTVRMovie object me --> integer (non-zero if the movie is a valid, open QTVR m
  */
 
 namespace Director {
-const char *QtvrxtraXtra::xlibName = "QTVRXtra";
+const char *const QtvrxtraXtra::xlibName = "QTVRXtra";
 const XlibFileDesc QtvrxtraXtra::fileNames[] = {
 	{ "qtvrxtra",	nullptr },
 	{ "Qtvrw32",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				QtvrxtraXtra::m_new,		 0, 0,	500 },
 	{ "forget",				QtvrxtraXtra::m_forget,		 0, 0,	500 },
 	{ "QTVREnter",			QtvrxtraXtra::m_QTVREnter,	 0, 0,	500 },
@@ -230,7 +230,7 @@ static MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xtras/qtvrxtra.h b/engines/director/lingo/xtras/qtvrxtra.h
index 12ca2e930c2..2b0601f3ed2 100644
--- a/engines/director/lingo/xtras/qtvrxtra.h
+++ b/engines/director/lingo/xtras/qtvrxtra.h
@@ -58,7 +58,7 @@ public:
 
 namespace QtvrxtraXtra {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xtras/scrnutil.cpp b/engines/director/lingo/xtras/scrnutil.cpp
index 9a9f7c387a5..eb4cebe43d4 100644
--- a/engines/director/lingo/xtras/scrnutil.cpp
+++ b/engines/director/lingo/xtras/scrnutil.cpp
@@ -48,17 +48,17 @@
 
 namespace Director {
 
-const char *ScrnUtilXtra::xlibName = "ScrnUtil";
+const char *const ScrnUtilXtra::xlibName = "ScrnUtil";
 const XlibFileDesc ScrnUtilXtra::fileNames[] = {
 	{ "scrnutil",	nullptr },
 	{ nullptr,		nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ "ScreenToClipboard", ScrnUtilXtra::m_ScreenToClipboard, 4, 4, 500, HBLTIN },
 	{ "ScreenToFile", ScrnUtilXtra::m_ScreenToFile, 5, 5, 500, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
diff --git a/engines/director/lingo/xtras/scrnutil.h b/engines/director/lingo/xtras/scrnutil.h
index da477901edd..a2c361b08f9 100644
--- a/engines/director/lingo/xtras/scrnutil.h
+++ b/engines/director/lingo/xtras/scrnutil.h
@@ -31,7 +31,7 @@ public:
 
 namespace ScrnUtilXtra {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/lingo/xtras/timextra.cpp b/engines/director/lingo/xtras/timextra.cpp
index a25b61c6ac4..1797d1d7e4d 100644
--- a/engines/director/lingo/xtras/timextra.cpp
+++ b/engines/director/lingo/xtras/timextra.cpp
@@ -43,18 +43,18 @@ new object me, any
 
 namespace Director {
 
-const char *TimextraXtra::xlibName = "Timextra";
+const char *const TimextraXtra::xlibName = "Timextra";
 const XlibFileDesc TimextraXtra::fileNames[] = {
 	{ "timextra",   nullptr },
 	{ nullptr,        nullptr },
 };
 
-static MethodProto xlibMethods[] = {
+static const MethodProto xlibMethods[] = {
 	{ "new",				TimextraXtra::m_new,		 1, 0,	500 },
 	{ nullptr, nullptr, 0, 0, 0 }
 };
 
-static BuiltinProto xlibBuiltins[] = {
+static const BuiltinProto xlibBuiltins[] = {
 	{ "getTime", TimextraXtra::m_getTime, 0, 0, 500, HBLTIN },
 	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
 };
diff --git a/engines/director/lingo/xtras/timextra.h b/engines/director/lingo/xtras/timextra.h
index fb8e34f045e..65f8ef87c5a 100644
--- a/engines/director/lingo/xtras/timextra.h
+++ b/engines/director/lingo/xtras/timextra.h
@@ -34,7 +34,7 @@ public:
 
 namespace TimextraXtra {
 
-extern const char *xlibName;
+extern const char *const xlibName;
 extern const XlibFileDesc fileNames[];
 
 void open(ObjectType type, const Common::Path &path);
diff --git a/engines/director/palette-fade.h b/engines/director/palette-fade.h
index d9d956b25e0..76f687f8523 100644
--- a/engines/director/palette-fade.h
+++ b/engines/director/palette-fade.h
@@ -19,7 +19,7 @@
  *
  */
 
-static byte kWhitePalette[768] = {
+static const byte kWhitePalette[768] = {
 	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  // 0 (0x00)
 	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  // 4 (0x04)
 	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  // 8 (0x08)
@@ -86,7 +86,7 @@ static byte kWhitePalette[768] = {
 	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00   // 252 (0xfc)
 };
 
-static byte kBlackPalette[768] = {
+static const byte kBlackPalette[768] = {
 	0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // 0 (0x00)
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // 4 (0x04)
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // 8 (0x08)
@@ -157,16 +157,16 @@ static byte kBlackPalette[768] = {
 // accuracy could be improved.
 // Regression formula used:
 // [round(31.78738613 + -1.934614248*i + 0.03033348561*i*i) for i in range(1, 31)]
-static int kFadeColorFrames[30] = {
+static const int kFadeColorFrames[30] = {
 	30, 28, 26, 25, 23, 21, 20, 18, 17, 15, 14,
 	13, 12, 11, 10, 9, 8, 7, 6, 5,
 	5, 4, 3, 3, 2, 2, 2, 1, 1, 1
 };
 
-static int kFadeColorFramesD5[30] = {
+static const int kFadeColorFramesD5[30] = {
 	494, 478, 460, 444, 426, 409, 392, 375, 358, 340,
 	323, 306, 289, 272, 254, 238, 220, 203, 186, 168,
 	152, 134, 117, 100, 83, 66, 48, 32, 14, 1
 };
 
-static int kFadeColorWait = 30;
+static const int kFadeColorWait = 30;
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 1c3a9f97dc6..79963aacf5e 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -907,7 +907,7 @@ bool Score::renderPrePaletteCycle(RenderMode mode) {
 			// For fade to black and fade to white palette transitions,
 			// the first half happens with the previous frame's layout.
 
-			byte *fadePal = nullptr;
+			const byte *fadePal = nullptr;
 			if (_currentFrame->_mainChannels.palette.fadeToBlack) {
 				// Fade everything except color index 0 to black
 				debugC(2, kDebugImages, "Score::renderPrePaletteCycle(): fading palette to black over %d frames", fadeFrames);
@@ -1120,7 +1120,7 @@ void Score::renderPaletteCycle(RenderMode mode) {
 				// then to the new palette
 				int halfway = frameCount / 2;
 
-				byte *fadePal = nullptr;
+				const byte *fadePal = nullptr;
 				if (_currentFrame->_mainChannels.palette.fadeToBlack) {
 					// Fade everything except color index 0 to black
 					fadePal = kBlackPalette;
@@ -1164,7 +1164,7 @@ void Score::renderPaletteCycle(RenderMode mode) {
 			// Do a full cycle in one frame transition
 			// For normal mode, we've already faded the palette in renderPrePaletteCycle
 			if (!_currentFrame->_mainChannels.palette.normal) {
-				byte *fadePal = nullptr;
+				const byte *fadePal = nullptr;
 				if (_currentFrame->_mainChannels.palette.fadeToBlack) {
 					// Fade everything except color index 0 to black
 					fadePal = kBlackPalette;
diff --git a/engines/director/types.cpp b/engines/director/types.cpp
index e82cde09b80..8213af1b447 100644
--- a/engines/director/types.cpp
+++ b/engines/director/types.cpp
@@ -24,7 +24,7 @@
 
 namespace Director {
 
-const char *scriptTypes[] = {
+const char *const scriptTypes[] = {
 	"ScoreScript",
 	"CastScript",
 	"MovieScript",
@@ -47,7 +47,7 @@ const char *scriptType2str(ScriptType scr) {
 	return scriptTypes[scr];
 }
 
-const char *castTypes[] = {
+const char *const castTypes[] = {
 	"empty",
 	"bitmap",
 	"filmLoop",
@@ -76,7 +76,7 @@ const char *castType2str(CastType type) {
 	return "<unknown>";
 }
 
-const char *spriteType[] = {
+const char *const spriteType[] = {
 	"Inactive",
 	"Bitmap",
 	"Rectangle",
@@ -106,7 +106,7 @@ const char *spriteType2str(SpriteType type) {
 	return "<unknown>";
 }
 
-const char *inkType[] = {
+const char *const inkType[] = {
 	"Copy",
 	"Transparent",
 	"Reverse",
diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index 1bb958d9ea1..8fdc07a9854 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -39,7 +39,7 @@
 
 namespace Director {
 
-static struct MacKeyCodeMapping {
+static const struct MacKeyCodeMapping {
 	Common::KeyCode scummvm;
 	int mac;
 } MackeyCodeMappings[] = {
@@ -167,7 +167,7 @@ static struct MacKeyCodeMapping {
 	{ Common::KEYCODE_INVALID,		0 }
 };
 
-static struct WinKeyCodeMapping {
+static const struct WinKeyCodeMapping {
 	Common::KeyCode scummvm;
 	int win;
 } WinkeyCodeMappings[] = {
@@ -282,10 +282,10 @@ void DirectorEngine::loadKeyCodes() {
 	if ((g_director->getPlatform() == Common::kPlatformWindows) && (g_director->getVersion() < 400)) {
 		// Allegedly this keykode list applies for the Windows version of D3.
 		// D4 and D5 for Windows are both confirmed to use the Mac keycode table.
-		for (WinKeyCodeMapping *k = WinkeyCodeMappings; k->scummvm != Common::KEYCODE_INVALID; k++)
+		for (const WinKeyCodeMapping *k = WinkeyCodeMappings; k->scummvm != Common::KEYCODE_INVALID; k++)
 			_KeyCodes[k->scummvm] = k->win;
 	} else {
-		for (MacKeyCodeMapping *k = MackeyCodeMappings; k->scummvm != Common::KEYCODE_INVALID; k++)
+		for (const MacKeyCodeMapping *k = MackeyCodeMappings; k->scummvm != Common::KEYCODE_INVALID; k++)
 			_KeyCodes[k->scummvm] = k->mac;
 	}
 }
@@ -421,8 +421,8 @@ Common::String CastMemberID::asString() const {
 	return res;
 }
 
-int recLevel = 0;
-const char *tabs[] = {	"",
+const int recLevel = 0;
+const char *const tabs[] = {	"",
 						"  ",
 						"    ",
 						"      ",
diff --git a/engines/director/util.h b/engines/director/util.h
index a4c3a1be507..6edcb57d017 100644
--- a/engines/director/util.h
+++ b/engines/director/util.h
@@ -125,7 +125,7 @@ inline byte lerpByte(byte a, byte b, int alpha, int span) {
 	return static_cast<byte>((bi * alpha + ai * (span - alpha)) / span);
 }
 
-inline void lerpPalette(byte *target, byte *palA, int palALength, byte *palB, int palBLength, int alpha, int span) {
+inline void lerpPalette(byte *target, const byte *palA, int palALength, const byte *palB, int palBLength, int alpha, int span) {
 	for (int i = 0; i < 768; i++) {
 		target[i] = lerpByte(
 			i < palALength * 3 ? palA[i] : 0,




More information about the Scummvm-git-logs mailing list