Fix typos with codespell

Using codespell 2.2-dev from current git.

Added `misc/scripts/codespell.sh` to make it easier to run it once in a
while and update the skip and ignore lists.

(cherry picked from commit 1bdb82c64e)
This commit is contained in:
Rémi Verschelde 2022-02-10 12:00:11 +01:00
parent 1865f06bef
commit 7a16bb2ee4
No known key found for this signature in database
GPG key ID: C3336907360768E1
41 changed files with 70 additions and 65 deletions

View file

@ -403,7 +403,7 @@ See the [release announcement](https://godotengine.org/article/godot-3-4-is-rele
- Label: Fix valign with stylebox borders ([GH-50478](https://github.com/godotengine/godot/pull/50478)).
- RichTextLabel: Fix auto-wrapping on CJK texts ([GH-49280](https://github.com/godotengine/godot/pull/49280)).
- RichTextLabel: Fix character horizontal offset calculation ([GH-52752](https://github.com/godotengine/godot/pull/52752)).
- RichTextLabel: Honor content marging when drawing font shadow ([GH-54054](https://github.com/godotengine/godot/pull/54054)).
- RichTextLabel: Honor content margin when drawing font shadow ([GH-54054](https://github.com/godotengine/godot/pull/54054)).
- RichTextLabel: Fix meta link detection when used inside a fill tag ([GH-54114](https://github.com/godotengine/godot/pull/54114)).
- TabContainer: Fix moving dropped tab to incorrect child index ([GH-51177](https://github.com/godotengine/godot/pull/51177)).
- Tabs: Fix invisible tabs not being ignored ([GH-53551](https://github.com/godotengine/godot/pull/53551)).

View file

@ -299,7 +299,7 @@ class CommandQueueMT {
DECL_CMD(0)
SPACE_SEP_LIST(DECL_CMD, 13)
/* comands that return */
/* commands that return */
DECL_CMD_RET(0)
SPACE_SEP_LIST(DECL_CMD_RET, 13)

View file

@ -38,7 +38,7 @@ class PHashTranslation : public Translation {
//this translation uses a sort of modified perfect hash algorithm
//it requires hashing strings twice and then does a binary search,
//so it's slower, but at the same time it has an extreemly high chance
//so it's slower, but at the same time it has an extremely high chance
//of catching untranslated strings
//load/store friendly types

View file

@ -764,7 +764,7 @@ static void _encode_string(const String &p_string, uint8_t *&buf, int &r_len) {
}
Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bool p_full_objects, int p_depth) {
ERR_FAIL_COND_V_MSG(p_depth > Variant::MAX_RECURSION_DEPTH, ERR_OUT_OF_MEMORY, "Potential inifite recursion detected. Bailing.");
ERR_FAIL_COND_V_MSG(p_depth > Variant::MAX_RECURSION_DEPTH, ERR_OUT_OF_MEMORY, "Potential infinite recursion detected. Bailing.");
uint8_t *buf = r_buffer;
r_len = 0;

View file

@ -50,8 +50,8 @@ public:
/**
*
* @param p_plane plane used to split the face
* @param p_res array of at least 3 faces, amount used in functio return
* @param p_is_point_over array of at least 3 booleans, determining which face is over the plane, amount used in functio return
* @param p_res array of at least 3 faces, amount used in function return
* @param p_is_point_over array of at least 3 booleans, determining which face is over the plane, amount used in function return
* @param _epsilon constant used for numerical error rounding, to add "thickness" to the plane (so coplanar points can happen)
* @return amount of faces generated by the split, either 0 (means no split possible), 2 or 3
*/

View file

@ -37,7 +37,7 @@
@author Juan Linietsky <reduzio@gmail.com>
* Generic Pool Allocator.
* This is a generic memory pool allocator, with locking, compacting and alignment. (@TODO alignment)
* It used as a standard way to manage alloction in a specific region of memory, such as texture memory,
* It used as a standard way to manage allocation in a specific region of memory, such as texture memory,
* audio sample memory, or just any kind of memory overall.
* (@TODO) abstraction should be greater, because in many platforms, you need to manage a nonreachable memory.
*/

View file

@ -81,7 +81,7 @@
The calculated light data.
</member>
<member name="quality" type="int" setter="set_bake_quality" getter="get_bake_quality" enum="BakedLightmap.BakeQuality" default="1">
Determines the amount of samples per texel used in indrect light baking. The amount of samples for each quality level can be configured in the project settings.
Determines the amount of samples per texel used in indirect light baking. The amount of samples for each quality level can be configured in the project settings.
</member>
<member name="use_color" type="bool" setter="set_use_color" getter="is_using_color" default="true">
Store full color values in the lightmap textures. When disabled, lightmap textures will store a single brightness channel. Can be disabled to reduce disk usage if the scene contains only white lights or you don't mind losing color information in indirect lighting.

View file

@ -123,7 +123,7 @@
The distance threshold before a target is considered to be reached. This will allow an agent to not have to hit a point on the path exactly, but in the area.
</member>
<member name="time_horizon" type="float" setter="set_time_horizon" getter="get_time_horizon" default="5.0">
The minimal amount of time for which this agent's velocities, that are computed with the collision avoidance algorithim, are safe with respect to other agents. The larger the number, the sooner the agent will respond to other agents, but the less freedom in choosing its velocities. Must be positive.
The minimal amount of time for which this agent's velocities, that are computed with the collision avoidance algorithm, are safe with respect to other agents. The larger the number, the sooner the agent will respond to other agents, but the less freedom in choosing its velocities. Must be positive.
</member>
</members>
<signals>

View file

@ -117,7 +117,7 @@
The distance threshold before a target is considered to be reached. This will allow an agent to not have to hit a point on the path exactly, but in the area.
</member>
<member name="time_horizon" type="float" setter="set_time_horizon" getter="get_time_horizon" default="20.0">
The minimal amount of time for which this agent's velocities, that are computed with the collision avoidance algorithim, are safe with respect to other agents. The larger the number, the sooner the agent will respond to other agents, but the less freedom in choosing its velocities. Must be positive.
The minimal amount of time for which this agent's velocities, that are computed with the collision avoidance algorithm, are safe with respect to other agents. The larger the number, the sooner the agent will respond to other agents, but the less freedom in choosing its velocities. Must be positive.
</member>
</members>
<signals>

View file

@ -56,7 +56,7 @@
<method name="get_mouse_position" qualifiers="const">
<return type="Vector2" />
<description>
Returns the mouse's positon in this [Viewport] using the coordinate system of this [Viewport].
Returns the mouse's position in this [Viewport] using the coordinate system of this [Viewport].
</description>
</method>
<method name="get_render_info">

View file

@ -471,19 +471,19 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S
# Inheritance tree
# Ascendants
if class_def.inherits:
inh = class_def.inherits.strip()
inherits = class_def.inherits.strip()
f.write("**" + translate("Inherits:") + "** ")
first = True
while inh in state.classes:
while inherits in state.classes:
if not first:
f.write(" **<** ")
else:
first = False
f.write(make_type(inh, state))
inode = state.classes[inh].inherits
f.write(make_type(inherits, state))
inode = state.classes[inherits].inherits
if inode:
inh = inode.strip()
inherits = inode.strip()
else:
break
f.write("\n\n")

View file

@ -1242,7 +1242,7 @@ bool RasterizerSceneGLES3::_setup_material(RasterizerStorageGLES3::Material *p_m
glBindTexture(target, tex);
if (t && storage->config.srgb_decode_supported) {
//if SRGB decode extension is present, simply switch the texture to whathever is needed
//if SRGB decode extension is present, simply switch the texture to whatever is needed
bool must_srgb = false;
if (t->srgb && (texture_hints[i] == ShaderLanguage::ShaderNode::Uniform::HINT_ALBEDO || texture_hints[i] == ShaderLanguage::ShaderNode::Uniform::HINT_BLACK_ALBEDO)) {

View file

@ -1812,7 +1812,7 @@ void main() {
discard;
#endif //ubershader-runtime
//lay out everything, whathever is unused is optimized away anyway
//lay out everything, whatever is unused is optimized away anyway
highp vec3 vertex = vertex_interp;
vec3 view = -normalize(vertex_interp);
vec3 albedo = vec3(1.0);

View file

@ -324,7 +324,7 @@ float EditorAudioBus::_normalized_volume_to_scaled_db(float normalized) {
/* There are three different formulas for the conversion from normalized
* values to relative decibal values.
* One formula is an exponential graph which intends to counteract
* the logorithmic nature of human hearing. This is an approximation
* the logarithmic nature of human hearing. This is an approximation
* of the behaviour of a 'logarithmic potentiometer' found on most
* musical instruments and also emulated in popular software.
* The other two equations are hand-tuned linear tapers that intend to

View file

@ -1544,7 +1544,7 @@ Error EditorFileSystem::_reimport_group(const String &p_group_file, const Vector
for (List<String>::Element *E = sk.front(); E; E = E->next()) {
String param = E->get();
Variant value = config->get_value("params", param);
//override with whathever is in file
//override with whatever is in file
source_file_options[p_files[i]][param] = value;
}
}

View file

@ -1709,7 +1709,7 @@ void EditorInspector::update_tree() {
if (F->get().label != String()) {
ep->set_label(F->get().label);
} else {
//use existin one
//use existing one
ep->set_label(name);
}
for (int i = 0; i < F->get().properties.size(); i++) {

View file

@ -535,7 +535,7 @@ String RenameDialog::_postprocess(const String &subject) {
// To Lowercase
result = result.to_lower();
} else if (case_id == 2) {
// To Upercase
// To Uppercase
result = result.to_upper();
}

View file

@ -319,7 +319,7 @@ public:
curly_stack++;
break;
} else {
break; //whathever else
break; //whatever else
}
}

View file

@ -139,11 +139,11 @@ fi
while true; do
if [ $terminal = "0" ] ; then
if [ -x "$ZENITY" ] ; then
ans=$($ZENITY --text-info --filename="$patch" --width=800 --height=600 --title="Do you want to apply that patch?" --ok-label="Apply" --cancel-label="Do not apply" --extra-button="Apply and stage")
choice=$($ZENITY --text-info --filename="$patch" --width=800 --height=600 --title="Do you want to apply that patch?" --ok-label="Apply" --cancel-label="Do not apply" --extra-button="Apply and stage")
if [ "$?" = "0" ] ; then
yn="Y"
else
if [ "$ans" = "Apply and stage" ] ; then
if [ "$choice" = "Apply and stage" ] ; then
yn="S"
else
yn="N"
@ -151,10 +151,10 @@ while true; do
fi
elif [ -x "$XMSG" ] ; then
$XMSG -file "$patch" -buttons "Apply":100,"Apply and stage":200,"Do not apply":0 -center -default "Do not apply" -geometry 800x600 -title "Do you want to apply that patch?"
ans=$?
if [ "$ans" = "100" ] ; then
choice=$?
if [ "$choice" = "100" ] ; then
yn="Y"
elif [ "$ans" = "200" ] ; then
elif [ "$choice" = "200" ] ; then
yn="S"
else
yn="N"
@ -162,10 +162,10 @@ while true; do
elif [ \( \( "$OSTYPE" = "msys" \) -o \( "$OSTYPE" = "win32" \) \) -a \( -x "$PWSH" \) ]; then
winmessage="$(canonicalize_filename "./.git/hooks/winmessage.ps1")"
$PWSH -noprofile -executionpolicy bypass -file "$winmessage" -file "$patch" -buttons "Apply":100,"Apply and stage":200,"Do not apply":0 -center -default "Do not apply" -geometry 800x600 -title "Do you want to apply that patch?"
ans=$?
if [ "$ans" = "100" ] ; then
choice=$?
if [ "$choice" = "100" ] ; then
yn="Y"
elif [ "$ans" = "200" ] ; then
elif [ "$choice" = "200" ] ; then
yn="S"
else
yn="N"

View file

@ -179,11 +179,11 @@ fi
while true; do
if [ $terminal = "0" ] ; then
if [ -x "$ZENITY" ] ; then
ans=$($ZENITY --text-info --filename="$patch" --width=800 --height=600 --title="Do you want to apply that patch?" --ok-label="Apply" --cancel-label="Do not apply" --extra-button="Apply and stage")
choice=$($ZENITY --text-info --filename="$patch" --width=800 --height=600 --title="Do you want to apply that patch?" --ok-label="Apply" --cancel-label="Do not apply" --extra-button="Apply and stage")
if [ "$?" = "0" ] ; then
yn="Y"
else
if [ "$ans" = "Apply and stage" ] ; then
if [ "$choice" = "Apply and stage" ] ; then
yn="S"
else
yn="N"
@ -191,10 +191,10 @@ while true; do
fi
elif [ -x "$XMSG" ] ; then
$XMSG -file "$patch" -buttons "Apply":100,"Apply and stage":200,"Do not apply":0 -center -default "Do not apply" -geometry 800x600 -title "Do you want to apply that patch?"
ans=$?
if [ "$ans" = "100" ] ; then
choice=$?
if [ "$choice" = "100" ] ; then
yn="Y"
elif [ "$ans" = "200" ] ; then
elif [ "$choice" = "200" ] ; then
yn="S"
else
yn="N"
@ -202,10 +202,10 @@ while true; do
elif [ \( \( "$OSTYPE" = "msys" \) -o \( "$OSTYPE" = "win32" \) \) -a \( -x "$PWSH" \) ]; then
winmessage="$(canonicalize_filename "./.git/hooks/winmessage.ps1")"
$PWSH -noprofile -executionpolicy bypass -file "$winmessage" -file "$patch" -buttons "Apply":100,"Apply and stage":200,"Do not apply":0 -center -default "Do not apply" -geometry 800x600 -title "Do you want to apply that patch?"
ans=$?
if [ "$ans" = "100" ] ; then
choice=$?
if [ "$choice" = "100" ] ; then
yn="Y"
elif [ "$ans" = "200" ] ; then
elif [ "$choice" = "200" ] ; then
yn="S"
else
yn="N"

View file

@ -0,0 +1,5 @@
#!/bin/sh
SKIP_LIST="./thirdparty,*.gen.*,*.po,*.pot,package-lock.json,./core/string/locales.h,./DONORS.md,./misc/scripts/codespell.sh"
IGNORE_LIST="ba,childs,curvelinear,doubleclick,expct,fave,findn,gird,inout,leapyear,lod,nd,numer,ois,readded,ro,statics,te,varn"
codespell -w -q 3 -S "${SKIP_LIST}" -L "${IGNORE_LIST}"

View file

@ -32,7 +32,7 @@
#define CAMERAOSX_H
///@TODO this is a near duplicate of CameraIOS, we should find a way to combine those to minimize code duplication!!!!
// If you fix something here, make sure you fix it there as wel!
// If you fix something here, make sure you fix it there as well!
#include "servers/camera_server.h"

View file

@ -29,7 +29,7 @@
/*************************************************************************/
///@TODO this is a near duplicate of CameraIOS, we should find a way to combine those to minimize code duplication!!!!
// If you fix something here, make sure you fix it there as wel!
// If you fix something here, make sure you fix it there as well!
#include "camera_osx.h"
#include "servers/camera/camera_feed.h"

View file

@ -70,7 +70,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
----------------------------------------------------------------------
*/
/** @file Helper class tp perform various byte oder swappings
/** @file Helper class to perform various byte order swappings
(e.g. little to big endian) */
#ifndef BYTE_SWAPPER_H
#define BYTE_SWAPPER_H

View file

@ -198,7 +198,7 @@ ObjectPtr LazyObject::LoadObject() {
object.reset(new ModelLimbNode(id, element, doc, name));
} else if (strcmp(classtag.c_str(), "IKEffector") && strcmp(classtag.c_str(), "FKEffector")) {
// FK and IK effectors are not supporte
// FK and IK effectors are not supported
object.reset(new Model(id, element, doc, name));
}
} else if (!strncmp(obtype, "Material", length)) {

View file

@ -145,7 +145,7 @@ typedef struct {
} godot_method_attributes;
typedef struct {
// instance pointer, method data, user data, num args, args - return result as varaint
// instance pointer, method data, user data, num args, args - return result as variant
GDCALLINGCONV godot_variant (*method)(godot_object *, void *, void *, int, godot_variant **);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);

View file

@ -778,7 +778,7 @@ public:
}
if (!ResourceCache::has(script)) {
//if the script is not in use by anyone, we can safely assume whathever we got is not casting to it.
//if the script is not in use by anyone, we can safely assume whatever we got is not casting to it.
return 1;
}
Ref<Script> cast_script = Ref<Resource>(ResourceCache::get(script));

View file

@ -177,7 +177,7 @@ Error WSLClient::connect_to_host(String p_host, String p_path, uint16_t p_port,
}
}
// We assume OK while hostname resultion is pending.
// We assume OK while hostname resolution is pending.
Error err = _resolver_id != IP::RESOLVER_INVALID_ID ? OK : FAILED;
while (_ip_candidates.size()) {
err = _tcp->connect_to_host(_ip_candidates.pop_front(), p_port);

View file

@ -88,7 +88,7 @@
- Using [ARVRController] nodes and their [signal ARVRController.button_pressed] and [signal ARVRController.button_release] signals. This is how controllers are typically handled in AR/VR apps in Godot, however, this will only work with advanced VR controllers like the Oculus Touch or Index controllers, for example. The buttons codes are defined by [url=https://immersive-web.github.io/webxr-gamepads-module/#xr-standard-gamepad-mapping]Section 3.3 of the WebXR Gamepads Module[/url].
- Using [method Node._unhandled_input] and [InputEventJoypadButton] or [InputEventJoypadMotion]. This works the same as normal joypads, except the [member InputEvent.device] starts at 100, so the left controller is 100 and the right controller is 101, and the button codes are also defined by [url=https://immersive-web.github.io/webxr-gamepads-module/#xr-standard-gamepad-mapping]Section 3.3 of the WebXR Gamepads Module[/url].
- Using the [signal select], [signal squeeze] and related signals. This method will work for both advanced VR controllers, and non-traditional "controllers" like a tap on the screen, a spoken voice command or a button press on the device itself. The [code]controller_id[/code] passed to these signals is the same id as used in [member ARVRController.controller_id].
You can use one or all of these methods to allow your game or app to support a wider or narrower set of devices and input methods, or to allow more advanced interations with more advanced devices.
You can use one or all of these methods to allow your game or app to support a wider or narrower set of devices and input methods, or to allow more advanced interactions with more advanced devices.
</description>
<tutorials>
<link title="How to make a VR game for WebXR with Godot">https://www.snopekgames.com/blog/2020/how-make-vr-game-webxr-godot</link>

View file

@ -28,7 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
// GodotViewGestureRecognizer allows iOS gestures to work currectly by
// GodotViewGestureRecognizer allows iOS gestures to work correctly by
// emulating UIScrollView's UIScrollViewDelayedTouchesBeganGestureRecognizer.
// It catches all gestures incoming to UIView and delays them for 150ms
// (the same value used by UIScrollViewDelayedTouchesBeganGestureRecognizer)

View file

@ -1868,7 +1868,7 @@ void OS_X11::_handle_key_event(XKeyEvent *p_event, LocalVector<XEvent> &p_events
// still works in half the cases. (won't handle deadkeys)
// For more complex input methods (deadkeys and more advanced)
// you have to use XmbLookupString (??).
// So.. then you have to chosse which of both results
// So.. then you have to choose which of both results
// you want to keep.
// This is a real bizarreness and cpu waster.
@ -2638,7 +2638,7 @@ void OS_X11::process_xevents() {
window_focused = false;
if (mouse_mode_grab) {
//dear X11, I try, I really try, but you never work, you do whathever you want.
//dear X11, I try, I really try, but you never work, you do whatever you want.
if (mouse_mode == MOUSE_MODE_CAPTURED) {
// Show the cursor if we're in captured mode so it doesn't look weird.
XUndefineCursor(x11_display, x11_window);
@ -3890,7 +3890,7 @@ Error OS_X11::move_to_trash(const String &p_path) {
DirAccessRef dir_access = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
Error err = dir_access->make_dir_recursive(trash_path);
// Issue an error if trash can is not created proprely.
// Issue an error if trash can is not created properly.
ERR_FAIL_COND_V_MSG(err != OK, err, "Could not create the trash path \"" + trash_path + "\"");
err = dir_access->make_dir_recursive(trash_path + "/files");
ERR_FAIL_COND_V_MSG(err != OK, err, "Could not create the trash path \"" + trash_path + "\"/files");

View file

@ -605,7 +605,7 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float
}
if (p_seeked) {
//find whathever should be playing
//find whatever should be playing
int idx = a->track_find_key(i, p_time);
if (idx < 0) {
continue;

View file

@ -1011,7 +1011,7 @@ void AnimationTree::_process_graph(float p_delta) {
TrackCacheAudio *t = static_cast<TrackCacheAudio *>(track);
if (seeked) {
//find whathever should be playing
//find whatever should be playing
int idx = a->track_find_key(i, time);
if (idx < 0) {
continue;

View file

@ -2430,7 +2430,7 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
//if (from && p_event->is_pressed() && !p_event->get_alt() && !p_event->get_metakey() && !p_event->key->get_command()) {
Ref<InputEventKey> k = p_event;
//need to check for mods, otherwise any combination of alt/ctrl/shift+<up/down/left/righ/etc> is handled here when it shouldn't be.
//need to check for mods, otherwise any combination of alt/ctrl/shift+<up/down/left/right/etc> is handled here when it shouldn't be.
bool mods = k.is_valid() && (k->get_control() || k->get_alt() || k->get_shift() || k->get_metakey());
if (from && p_event->is_pressed()) {

View file

@ -1221,7 +1221,7 @@ String ResourceFormatLoaderText::get_resource_type(const String &p_path) const {
return String();
}
//for anyhting else must test..
//for anything else must test..
FileAccess *f = FileAccess::open(p_path, FileAccess::READ);
if (!f) {

View file

@ -311,12 +311,12 @@ public:
m_angularLimits[2].m_hiLimit = angularUpper.z;
}
//! Retrieves the angular limit informacion
//! Retrieves the angular limit information
G6DOFRotationalLimitMotorSW *getRotationalLimitMotor(int index) {
return &m_angularLimits[index];
}
//! Retrieves the limit informacion
//! Retrieves the limit information
G6DOFTranslationalLimitMotorSW *getTranslationalLimitMotor() {
return &m_linearLimits;
}

View file

@ -201,7 +201,7 @@ void SliderJointSW::solve(real_t p_step) {
real_t softness = (i) ? m_softnessOrthoLin : (m_solveLinLim ? m_softnessLimLin : m_softnessDirLin);
real_t restitution = (i) ? m_restitutionOrthoLin : (m_solveLinLim ? m_restitutionLimLin : m_restitutionDirLin);
real_t damping = (i) ? m_dampingOrthoLin : (m_solveLinLim ? m_dampingLimLin : m_dampingDirLin);
// calcutate and apply impulse
// calculate and apply impulse
real_t normalImpulse = softness * (restitution * depth / p_step - damping * rel_vel) * m_jacLinDiagABInv[i];
Vector3 impulse_vector = normal * normalImpulse;
A->apply_impulse(m_relPosA, impulse_vector);

View file

@ -663,7 +663,7 @@ ShaderLanguage::Token ShaderLanguage::_get_token() {
}
if (!str.is_valid_integer()) {
if (uint_suffix_found) {
return _make_token(TK_ERROR, "Invalid (usigned integer) numeric constant");
return _make_token(TK_ERROR, "Invalid (unsigned integer) numeric constant");
} else {
return _make_token(TK_ERROR, "Invalid (integer) numeric constant");
}

View file

@ -611,7 +611,7 @@ private:
public:
struct Ghost : RID_Data {
// all interations with actual ghosts are indirect, as the ghost is part of the scenario
// all interactions with actual ghosts are indirect, as the ghost is part of the scenario
Scenario *scenario = nullptr;
uint32_t object_id = 0;
RGhostHandle rghost_handle = 0; // handle in occlusion system (or 0)
@ -638,7 +638,7 @@ private:
public:
struct Portal : RID_Data {
// all interations with actual portals are indirect, as the portal is part of the scenario
// all interactions with actual portals are indirect, as the portal is part of the scenario
uint32_t scenario_portal_id = 0;
Scenario *scenario = nullptr;
virtual ~Portal() {
@ -659,7 +659,7 @@ public:
// RoomGroups
struct RoomGroup : RID_Data {
// all interations with actual roomgroups are indirect, as the roomgroup is part of the scenario
// all interactions with actual roomgroups are indirect, as the roomgroup is part of the scenario
uint32_t scenario_roomgroup_id = 0;
Scenario *scenario = nullptr;
virtual ~RoomGroup() {
@ -704,7 +704,7 @@ public:
// Rooms
struct Room : RID_Data {
// all interations with actual rooms are indirect, as the room is part of the scenario
// all interactions with actual rooms are indirect, as the room is part of the scenario
uint32_t scenario_room_id = 0;
Scenario *scenario = nullptr;
virtual ~Room() {

View file

@ -362,7 +362,7 @@ Vector2 VisualServer::norm_to_oct(const Vector3 v) {
}
// Maps normalized tangent vector to an octahedron projected onto the cartesian plane
// Encodes the tangent vector sign in the second componenet of the returned Vector2 for use in shaders
// Encodes the tangent vector sign in the second component of the returned Vector2 for use in shaders
// high_precision specifies whether the encoding will be 32 bit (true) or 16 bit (false)
// Resulting 2D vector in range [-1, 1]
// See http://jcgt.org/published/0003/02/01/ for details