From 7acbb06fbd720a7d8cba9f5102a0d2e04b4bbda8 Mon Sep 17 00:00:00 2001
From: cremno <cremno@mail.ru>
Date: Tue, 2 Sep 2014 19:45:50 +0200
Subject: [PATCH] add RGSS 3.0.1 etc classes equality comparison

RGSS 3.0.1 finally fixed #==, #===, #eql? for Color, Tone, and Rect.
Now instances of them can be compared to other kinds of objects.
---
 binding-mri/etc-binding.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/binding-mri/etc-binding.cpp b/binding-mri/etc-binding.cpp
index 32ad494..731ccca 100644
--- a/binding-mri/etc-binding.cpp
+++ b/binding-mri/etc-binding.cpp
@@ -22,6 +22,7 @@
 #include "etc.h"
 #include "binding-util.h"
 #include "serializable-binding.h"
+#include "sharedstate.h"
 
 DEF_TYPE(Color);
 DEF_TYPE(Tone);
@@ -68,6 +69,9 @@ ATTR_INT_RW(Rect, Height)
 		VALUE otherObj; \
 		Klass *other; \
 		rb_get_args(argc, argv, "o", &otherObj RB_ARG_END); \
+		if (rgssVer >= 3) \
+			if (!rb_typeddata_is_kind_of(otherObj, &Klass##Type)) \
+				return Qfalse; \
 		other = getPrivateDataCheck<Klass>(otherObj, Klass##Type); \
 		return rb_bool_new(*p == *other); \
 	}