Difference between revisions of "Lua:bOr"

From Cheat Engine
Jump to navigation Jump to search
m (Syntax Highlighting.)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<h2>bOr(int1, int2)   : Binary Or</h2>
+
[[Category:Lua]]
 +
{{CodeBox|'''function''' bOr(''int1'', ''int2'') ''':''' Integer}}
 +
 
 +
Performs a bitwise OR operation between two integer values. This function behaves the same as Lua's bitwise OR operator (<code>|</code>) inside Cheat Engine. It is typically used when combining bitmasks or ensuring specific bits are set.
 +
 
 +
=== Function Parameters ===
 +
{|width="85%" cellpadding="10%" cellpadding="5%" cellspacing="0" border="0"
 +
!align="left"|Parameter
 +
!align="left"|Type
 +
!style="width: 80%;" align="left"|Description
 +
|-
 +
|int1
 +
|integer
 +
|The first integer value to be used in the bitwise OR operation.
 +
|-
 +
|int2
 +
|integer
 +
|The second integer value to be combined with <code>int1</code>.
 +
|}
 +
 
 +
=== Returns ===
 +
An integer representing the result of the bitwise OR operation.
 +
 
 +
=== Description ===
 +
The bitwise OR operation compares each bit of the two integers and sets the bit in the result to '''1''' if either corresponding bit is '''1'''. This is commonly used for:
 +
 
 +
* Combining bitmask flags
 +
* Setting specific bit values
 +
* Low-level memory and instruction manipulation
 +
 
 +
'''Binary breakdown example:'''
 +
 
 
<pre>
 
<pre>
-- 1 | 2
+
0001  (1)
print( bOr(1,2) ) -- 3
+
0010  (2)
 +
----
 +
0011  (3)
 +
</pre>
 +
 
 +
=== Usage Examples ===
 +
'''Simple bitwise OR:'''
 +
 
 +
<syntaxhighlight lang="lua" line>
 +
print( bOr(1, 2) )   -- 3
 +
</syntaxhighlight>
 +
 
 +
'''Using Lua's OR operator (equivalent):'''
 +
 
 +
<syntaxhighlight lang="lua" line>
 +
print( 1 | 2 )        -- 3
 +
</syntaxhighlight>
 +
 
 +
'''Combining bitmask flags:'''
 +
 
 +
<syntaxhighlight lang="lua" line>
 +
local FLAG_A = 0x01
 +
local FLAG_B = 0x04
 +
local combined = bOr(FLAG_A, FLAG_B)
 +
print(string.format("0x%X", combined)) -- 0x5
 +
</syntaxhighlight>
 +
 
 +
'''Applying OR to set bits:'''
 +
 
 +
<syntaxhighlight lang="lua" line>
 +
local value = 0x10
 +
value = bOr(value, 0x02)  -- Set bit 1
 +
print(string.format("0x%X", value))
 +
</syntaxhighlight>
  
0001
+
=== Behavior ===
0010
+
 
-----
+
* Always returns an integer.
0011
+
* Only works on numeric values; non-integer types should be converted beforehand.
</pre>
+
* Equivalent to the native bitwise OR operator (<code>|</code>) in Cheat Engine's Lua.
 +
 
 +
=== Advanced Examples ===
 +
'''Using OR to toggle feature flags:'''
 +
 
 +
<syntaxhighlight lang="lua" line>
 +
local FEATURE_RENDER = 0x01
 +
local FEATURE_PHYSICS = 0x02
 +
local enabled = 0
 +
 
 +
-- Enable rendering
 +
enabled = bOr(enabled, FEATURE_RENDER)
 +
-- Enable physics
 +
enabled = bOr(enabled, FEATURE_PHYSICS)
 +
 
 +
print(enabled)  -- 3
 +
</syntaxhighlight>
 +
 
 +
'''Combining OR with bitwise AND for flag management:'''
 +
 
 +
<syntaxhighlight lang="lua" line>
 +
local flags = 0
 +
flags = bOr(flags, 0x08)  -- Enable bit 3
 +
if (flags & 0x08) ~= 0 then
 +
  print("Bit 3 enabled")
 +
end
 +
</syntaxhighlight>
 +
 
 +
{{LuaSeeAlso}}
 +
 
 +
{{BinaryOps}}

Latest revision as of 20:03, 25 June 2026

<> Lua API Reference

function bOr(int1, int2) : Integer

Performs a bitwise OR operation between two integer values. This function behaves the same as Lua's bitwise OR operator (|) inside Cheat Engine. It is typically used when combining bitmasks or ensuring specific bits are set.

Function Parameters[edit]

Parameter Type Description
int1 integer The first integer value to be used in the bitwise OR operation.
int2 integer The second integer value to be combined with int1.

Returns[edit]

An integer representing the result of the bitwise OR operation.

Description[edit]

The bitwise OR operation compares each bit of the two integers and sets the bit in the result to 1 if either corresponding bit is 1. This is commonly used for:

  • Combining bitmask flags
  • Setting specific bit values
  • Low-level memory and instruction manipulation

Binary breakdown example:

0001   (1)
0010   (2)
----
0011   (3)

Usage Examples[edit]

Simple bitwise OR:

1 print( bOr(1, 2) )   -- 3

Using Lua's OR operator (equivalent):

1 print( 1 | 2 )        -- 3

Combining bitmask flags:

1 local FLAG_A = 0x01
2 local FLAG_B = 0x04
3 local combined = bOr(FLAG_A, FLAG_B)
4 print(string.format("0x%X", combined)) -- 0x5

Applying OR to set bits:

1 local value = 0x10
2 value = bOr(value, 0x02)   -- Set bit 1
3 print(string.format("0x%X", value))

Behavior[edit]

  • Always returns an integer.
  • Only works on numeric values; non-integer types should be converted beforehand.
  • Equivalent to the native bitwise OR operator (|) in Cheat Engine's Lua.

Advanced Examples[edit]

Using OR to toggle feature flags:

 1 local FEATURE_RENDER = 0x01
 2 local FEATURE_PHYSICS = 0x02
 3 local enabled = 0
 4 
 5 -- Enable rendering
 6 enabled = bOr(enabled, FEATURE_RENDER)
 7 -- Enable physics
 8 enabled = bOr(enabled, FEATURE_PHYSICS)
 9 
10 print(enabled)   -- 3

Combining OR with bitwise AND for flag management:

1 local flags = 0
2 flags = bOr(flags, 0x08)   -- Enable bit 3
3 if (flags & 0x08) ~= 0 then
4   print("Bit 3 enabled")
5 end

Main Pages

Core Lua documentation entry points

Lua
Script Engine

Bitwise Related Lua Functions

bOr – Bitwise OR
bXor – Bitwise XOR
bAnd – Bitwise AND
bShl – Bitwise Shift Left
bShr – Bitwise Shift Right
bNot – Bitwise NOT