12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /* vim: set expandtab ts=4 sw=4: */
- /*
- * You may redistribute this program and/or modify it under the terms of
- * the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
- #define Version_COMPAT(one, twoRange) <?js \
- file.Version_COMPAT = file.Version_COMPAT || []; \
- file.Version_COMPAT[one] = twoRange; \
- ?>
- #include "util/version/Version.h"
- static const uint8_t VERSION_MATRIX[Version_CURRENT_PROTOCOL+1][Version_CURRENT_PROTOCOL+1] =
- <?js
- var matrix = [];
- for (var i = 0; i <= Version_CURRENT_PROTOCOL; i++) {
- var row = matrix[matrix.length] = [];
- for (var j = 0; j <= Version_CURRENT_PROTOCOL; j++) {
- if (j == i) {
- row[j] = 1;
- } else {
- row[j] =
- (file.Version_COMPAT[Math.max(i, j)].indexOf(Math.min(i,j)) > -1) ? 1 : 0;
- }
- }
- }
- return JSON.stringify(matrix).replace(/\[/g,'{').replace(/\]/g,'}');
- ?>;
- int Version_isCompatible(uint32_t one, uint32_t two)
- {
- if (one > Version_CURRENT_PROTOCOL) { one = Version_CURRENT_PROTOCOL; }
- if (two > Version_CURRENT_PROTOCOL) { two = Version_CURRENT_PROTOCOL; }
- return VERSION_MATRIX[one][two];
- }
|